圖像分類、AI 與全自動性能測試

原文由williamfzc發(fā)表于TesterHome社區(qū)洲炊,點(diǎn)擊[原文鏈接]直達(dá)原帖與作者在線交流感局。

項(xiàng)目地址:https://github.com/williamfzc/stagesepx
官方文檔:https://williamfzc.github.io/stagesepx/#/
使用指引:https://github.com/williamfzc/work_with_stagesepx

前言

之前我陸陸續(xù)續(xù)分享了一些圖像識別在測試領(lǐng)域內(nèi)的應(yīng)用實(shí)踐,功能測試與性能測試都有涉及暂衡。前段時間寫了 讓所有人都能用圖像識別做 UI 自動化基于圖像識別的 UI 自動化解決方案 之后 询微,隨著他逐漸穩(wěn)定下來,在功能測試的這一塊的個人目標(biāo)終于基本算是完成了狂巢。

在性能測試方向撑毛,近期也有不少同學(xué)一直很關(guān)注這項(xiàng)技術(shù)在性能測試上的應(yīng)用。這是之前陸陸續(xù)續(xù)做的兩個版本:

盡管后來的版本已經(jīng)基本可用(后來隨著迭代隧膘,效率變得太低了代态,又變得不太可用了),但總感覺疹吃,這不是一個最理想的版本蹦疑。

經(jīng)過這段時間,我終于做好了一個更加符合我預(yù)期的方案: stagesep-x萨驶。

為什么又開新坑

與之前的版本相比歉摧,它原理完全不同,使用場景也不完全一致腔呜。所以我選擇另外開一個項(xiàng)目而不是繼續(xù)迭代叁温。

stagesepx 能做什么

在軟件工程領(lǐng)域,視頻是一種較為通用的UI(現(xiàn)象)描述方法核畴。它能夠記錄下用戶到底做了哪些操作膝但,以及界面發(fā)生了什么事情。例如谤草,下面的例子描述了從桌面打開chrome進(jìn)入amazon主頁的過程:

stagesepx能夠自動偵測并提取視頻中的穩(wěn)定或不穩(wěn)定的階段(例子中跟束,stagesepx認(rèn)為視頻中包含三個穩(wěn)定的階段,分別是點(diǎn)擊前丑孩、點(diǎn)擊時與頁面加載完成后):

然后冀宴,自動得到每個階段對應(yīng)的時間區(qū)間:
image.png

例如,從圖中可以看出:

  • 視頻開始直到 0.76s 時維持在階段0
  • 在 0.76s 時從階段0切換到階段1
  • 在 0.92s 時從階段1切換到階段0温学,隨后進(jìn)入變化狀態(tài)(當(dāng)stagesepx無法將幀分為某特定類別略贮、或幀不在待分析范圍內(nèi)時,會被標(biāo)記為 -1,一般會在頁面發(fā)生變化的過程中出現(xiàn))
  • 在 1.16s 時到達(dá)階段2
  • ...

以此類推逃延,我們能夠?qū)σ曨l的每個階段進(jìn)行非常細(xì)致的評估览妖。通過觀察視頻也可以發(fā)現(xiàn),識別效果與實(shí)際完全一致真友。

在運(yùn)行過程中黄痪,stagesepx強(qiáng)大的快照功能能夠讓你很輕松地知道每個階段到底發(fā)生了什么:

而所有的一切只需要一個視頻,無需前置模板盔然、無需提前學(xué)習(xí)桅打。

應(yīng)用舉例

所有stagesepx需要的只是一個視頻,而且它本質(zhì)上只跟視頻有關(guān)聯(lián)愈案,并沒有任何特定的使用場景挺尾!所以,你可以盡情發(fā)揮你的想象力站绪,用它幫助你實(shí)現(xiàn)更多的功能遭铺。

APP

  • 前面提到的應(yīng)用啟動速度計算
  • 那么同理,頁面切換速度等方面都可以應(yīng)用
  • 除了性能恢准,你可以使用切割器對視頻切割后魂挂,用諸如findit等圖像識別方案對功能性進(jìn)行校驗(yàn)
  • 除了應(yīng)用,游戲這種無法用傳統(tǒng)測試方法的場景更是它的主場
  • ...

除了APP馁筐?

  • 除了移動端涂召,當(dāng)然PC、網(wǎng)頁也可以同理計算出結(jié)果
  • 甚至任何視頻敏沉?


Do whatever you want:)

使用

安裝

Python >= 3.6

pip install stagesepx 

例子

還想要更多功能果正?

當(dāng)然,stagesepx不僅如此盟迟。但在開始下面的閱讀之前秋泳,你需要了解 切割器(cutter)與 分類器(classifier)。stagesepx主要由這兩個概念組成攒菠。

切割器

顧名思義迫皱,切割器的功能是將一個視頻按照一定的規(guī)律切割成多個部分。他負(fù)責(zé)視頻階段劃分與采樣辖众,作為數(shù)據(jù)采集者為其他工具(例如AI模型)提供自動化的數(shù)據(jù)支持卓起。它應(yīng)該提供友好的接口或其他形式為外部(包括分類器)提供支持。例如赵辕,pick_and_save方法完全是為了能夠使數(shù)據(jù)直接被 keras 利用而設(shè)計的既绩。

切割器的定位是預(yù)處理概龄,降低其他模塊的運(yùn)作成本及重復(fù)度还惠。得到穩(wěn)定區(qū)間之后,我們可以知道視頻中有幾個穩(wěn)定階段私杜、提取穩(wěn)定階段對應(yīng)的幀等等蚕键。在此基礎(chǔ)上救欧,你可以很輕松地對階段進(jìn)行圖片采樣(例子中為每個階段采集3張圖片,一共有3個穩(wěn)定階段锣光,分別名為0笆怠、1、2)后保存起來誊爹,以備他用(例如AI訓(xùn)練蹬刷、功能檢測等等):

分類器

針對上面的例子,分類器應(yīng)運(yùn)而生频丘。它主要是加載(在AI分類器上可能是學(xué)習(xí))一些分類好的圖片办成,并據(jù)此對幀(圖片)進(jìn)行分類。

例如搂漠,當(dāng)加載上述例子中穩(wěn)定階段對應(yīng)的幀后迂卢,分類器即可將視頻進(jìn)行幀級別的分類,得到每個階段的準(zhǔn)確耗時桐汤。

分類器的定位是對視頻進(jìn)行幀級別而克、高準(zhǔn)確度的圖片分類,并能夠利用采樣結(jié)果怔毛。它應(yīng)該有不同的存在形態(tài)(例如機(jī)器學(xué)習(xí)模型)员萍、以達(dá)到不同的分類效果。例如馆截,你可以在前幾次視頻中用采樣得到的數(shù)據(jù)訓(xùn)練你的AI模型充活,當(dāng)它收斂之后在你未來的分析中你就可以直接利用訓(xùn)練好的模型進(jìn)行分類,而不需要前置的采樣過程了蜡娶。stagesep2本質(zhì)上是一個分類器混卵。

不同形態(tài)的分類器

stagesepx提供了兩種不同類型的分類器,用于處理切割后的結(jié)果:

  • 傳統(tǒng)的 SSIM 分類器無需訓(xùn)練且較為輕量化窖张,多用于階段較少幕随、較為簡單的視頻;
  • SVM + HoG分類器在階段復(fù)雜的視頻上表現(xiàn)較好宿接,你可以用不同的視頻對它進(jìn)行訓(xùn)練逐步提高它的識別效果赘淮,使其足夠被用于生產(chǎn)環(huán)境;

目前基于CNN的分類器已經(jīng)初步完成睦霎,在穩(wěn)定后會加入 :)但目前來看梢卸,前兩個分類器在較短視頻上的應(yīng)用已經(jīng)足夠了(可能需要調(diào)優(yōu),但原理上是夠用的)副女。

事實(shí)上蛤高,stagesepx在設(shè)計上更加鼓勵開發(fā)者根據(jù)自己的實(shí)際需要設(shè)計并使用自己的分類器,以達(dá)到最好的效果。

豐富的圖表

想得到耗時戴陡?stagesepx已經(jīng)幫你計算好了:

快照功能能夠讓你很直觀地知道每個階段的情況:

...

優(yōu)異的性能表現(xiàn)

在效率方面塞绿,吸取了 stagesep2 的教訓(xùn)(他真的很慢,而這一點(diǎn)讓他很難被用于生產(chǎn)環(huán)境)恤批,在項(xiàng)目規(guī)劃期我們就將性能的優(yōu)先級提高异吻。對于該視頻而言,可以從日志中看到喜庞,它的耗時在驚人的300毫秒左右(windows7 i7-6700 3.4GHz 16G):

2019-07-17 10:52:03.429 | INFO     | stagesepx.cutter:cut:200 - start cutting: test.mp4
...
2019-07-17 10:52:03.792 | INFO     | stagesepx.cutter:cut:203 - cut finished: test.mp4

除了常規(guī)的基于圖像本身的優(yōu)化手段诀浪,stagesepx主要利用采樣機(jī)制進(jìn)行性能優(yōu)化,它指把時間域或空間域的連續(xù)量轉(zhuǎn)化成離散量的過程延都。由于分類器的精確度要求較高笋妥,該機(jī)制更多被用于切割器部分,用于加速切割過程窄潭。它在計算量方面優(yōu)化幅度是非炒盒可觀的,以5幀的步長為例嫉你,它相比優(yōu)化前節(jié)省了80%的計算量月帝。

當(dāng)然,采樣相比連續(xù)計算會存在一定的誤差幽污,如果你的視頻變化較為激烈或者你希望有較高的準(zhǔn)確度嚷辅,你也可以關(guān)閉采樣功能。

更強(qiáng)的穩(wěn)定性

stagesep2存在的另一個問題是距误,對視頻本身的要求較高簸搞,抗干擾能力不強(qiáng)。這主要是它本身使用的模塊(template matching准潭、OCR等)導(dǎo)致的趁俊,旋轉(zhuǎn)、分辨率刑然、光照都會對識別效果造成影響寺擂;由于它強(qiáng)依賴預(yù)先準(zhǔn)備好的模板圖片,如果模板圖片的錄制環(huán)境與視頻有所差異泼掠,很容易導(dǎo)致誤判的發(fā)生怔软。

而SSIM本身的抗干擾能力相對較強(qiáng)。如果使用默認(rèn)的SSIM分類器择镇,所有的數(shù)據(jù)(訓(xùn)練集與測試集)都來源于同一個視頻挡逼,保證了環(huán)境的一致性,規(guī)避了不同環(huán)境(例如旋轉(zhuǎn)腻豌、光照家坎、分辨率等)帶來的影響叹谁,大幅度降低了誤判的發(fā)生。

Bug Report

可想而知的乘盖,要考慮到所有的場景是非常困難的,在項(xiàng)目前期很難做到憔涉。

有什么建議或者遇到問題可以通過issue反饋給我 :)

項(xiàng)目地址

https://github.com/williamfzc/stagesepx

原文由williamfzc發(fā)表于TesterHome社區(qū)订框,點(diǎn)擊[原文鏈接]直達(dá)原帖與作者在線交流。

今日份的知識已攝入兜叨!想要學(xué)習(xí)更多干貨知識穿扳、結(jié)識質(zhì)量行業(yè)大牛和業(yè)界精英?
第十屆中國互聯(lián)網(wǎng)測試開發(fā)大會·深圳国旷,了解下 >>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末矛物,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子跪但,更是在濱河造成了極大的恐慌履羞,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屡久,死亡現(xiàn)場離奇詭異忆首,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)被环,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進(jìn)店門糙及,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人筛欢,你說我怎么就攤上這事浸锨。” “怎么了版姑?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵柱搜,是天一觀的道長。 經(jīng)常有香客問我剥险,道長冯凹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任炒嘲,我火速辦了婚禮宇姚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘夫凸。我一直安慰自己浑劳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布夭拌。 她就那樣靜靜地躺著魔熏,像睡著了一般衷咽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蒜绽,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天镶骗,我揣著相機(jī)與錄音,去河邊找鬼躲雅。 笑死鼎姊,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的相赁。 我是一名探鬼主播相寇,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼踊挠,長吁一口氣:“原來是場噩夢啊……” “哼赠幕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起铐殃,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤绵脯,失蹤者是張志新(化名)和其女友劉穎佳励,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛆挫,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡植兰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了璃吧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片楣导。...
    茶點(diǎn)故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖畜挨,靈堂內(nèi)的尸體忽然破棺而出筒繁,到底是詐尸還是另有隱情,我是刑警寧澤巴元,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布毡咏,位于F島的核電站,受9級特大地震影響逮刨,放射性物質(zhì)發(fā)生泄漏呕缭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一修己、第九天 我趴在偏房一處隱蔽的房頂上張望恢总。 院中可真熱鬧,春花似錦睬愤、人聲如沸片仿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽砂豌。三九已至厢岂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阳距,已是汗流浹背塔粒。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筐摘,地道東北人卒茬。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像蓄拣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子努隙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內(nèi)容