實(shí)戰(zhàn)案例:AI產(chǎn)品經(jīng)理如何介紹“計(jì)算機(jī)視覺(jué)”?
作者根據(jù)親身經(jīng)理的項(xiàng)目案例和平時(shí)所學(xué),從產(chǎn)品實(shí)踐的角度,談?wù)動(dòng)?jì)算機(jī)視覺(jué),希望對(duì)你有所幫助。
計(jì)算機(jī)視覺(jué)(Computer Vision)對(duì)我來(lái)說(shuō)也算是老朋友了,我最開(kāi)始接觸人工智能就是計(jì)算機(jī)視覺(jué)相關(guān)的知識(shí)。最近受益于老大每日帶我去旁聽(tīng)的算法例會(huì),又加上看了徐立(商湯)的《計(jì)算機(jī)視覺(jué)的完整鏈條,從成像到早期視覺(jué)再到識(shí)別理解》,發(fā)現(xiàn)很多信息,當(dāng)時(shí)不覺(jué)得有什么,現(xiàn)在想想,每一步都是有意義的。
今天,我會(huì)根據(jù)親身經(jīng)理的項(xiàng)目案例和平時(shí)所學(xué),從產(chǎn)品實(shí)踐的角度,談?wù)動(dòng)?jì)算機(jī)視覺(jué)。
一、前言
計(jì)算機(jī)視覺(jué)(computer vision)是使用計(jì)算機(jī)以及相關(guān)設(shè)備對(duì)生物視覺(jué)的一種模擬。它主要任務(wù)是通過(guò)對(duì)采集的圖片或視頻進(jìn)行處理以獲得相應(yīng)場(chǎng)景的三維信息。
在徐立的分享中,將計(jì)算機(jī)視覺(jué)的完整鏈條分為了三部分:
- 成像(image)
- 早期視覺(jué)(early vision)
- 識(shí)別理解(Recognition)
本文也將根據(jù)徐立對(duì)整個(gè)鏈條的三部分分類,分別用實(shí)際例子結(jié)合談?wù)劗a(chǎn)品在三部分中可以關(guān)注的內(nèi)容。
二、成像(image)
成像就是模擬的相機(jī)原理,就是在解決怎樣把拍攝照片的質(zhì)量進(jìn)行提升的問(wèn)題。
我們?cè)趯?shí)際工業(yè)運(yùn)用中,經(jīng)常發(fā)現(xiàn)實(shí)際數(shù)據(jù)和實(shí)驗(yàn)室數(shù)據(jù)相差過(guò)大,實(shí)驗(yàn)數(shù)據(jù)的質(zhì)量遠(yuǎn)遠(yuǎn)差于實(shí)驗(yàn)室數(shù)據(jù)。更甚者在最開(kāi)始訓(xùn)練模型的時(shí)候,我們會(huì)發(fā)現(xiàn)實(shí)驗(yàn)室模型在實(shí)際場(chǎng)景毫無(wú)效用。
經(jīng)過(guò)多次試驗(yàn)測(cè)試,我們發(fā)現(xiàn)影響圖像質(zhì)量的因素大概有以下幾類:
光照影響
過(guò)暗或過(guò)亮等非正常光照環(huán)境,會(huì)對(duì)模型的效果產(chǎn)生很大干擾。在解決光照影響這個(gè)問(wèn)題上,我想可以通過(guò)兩種方式:
1)從產(chǎn)品角度控制:
a.在用戶可以更換環(huán)境的前提下(比如手機(jī)自拍等),可語(yǔ)音/界面提示用戶目前環(huán)境不理想,建議換一個(gè)環(huán)境。
b.用戶不能控制更換環(huán)境的情況下(比如人臉識(shí)別、車輛識(shí)別等攝像頭固定的場(chǎng)景),只能通過(guò)調(diào)試硬件設(shè)施彌補(bǔ)這個(gè)問(wèn)題。
- 夜晚:在工業(yè)上我們碰到過(guò)曝或者過(guò)暗的情況更多都是在晚上,由于攝像頭在晚上會(huì)自動(dòng)切換到黑夜場(chǎng)景(從圖片上看就是從彩色切換為黑白),因此在晚上強(qiáng)光下(例如車燈照射)圖像就會(huì)過(guò)曝,這樣的情況我們可以通過(guò)強(qiáng)制設(shè)置攝像頭環(huán)境為白天(圖像為彩色)來(lái)避免。過(guò)暗的情況從節(jié)省成本角度看,我們可以在攝像頭旁邊增加一個(gè)光線發(fā)散、功率不高的燈來(lái)彌補(bǔ)。當(dāng)然這兩個(gè)問(wèn)題也可以通過(guò)購(gòu)買高質(zhì)量的攝像頭解決,但這樣做也意味著更高的成本。
- 白日:白天也會(huì)出現(xiàn)光線過(guò)亮的情況,這種情況可以考慮用濾光片等等。
2)算法角度控制
用算法將圖片進(jìn)行處理,可以將圖片恢復(fù)得讓人眼看清的程度。徐立在文中舉例了這樣一張圖片:
這張圖片從暗到明,經(jīng)過(guò)算法的處理我們可以顯而易見(jiàn)地觀察到整個(gè)圖片的內(nèi)容。這個(gè)辦法非常靈活,但也對(duì)公司的算法提出了更高的要求。我們知道每一次算法的過(guò)濾時(shí)間是非常重要的,如果在對(duì)時(shí)間要求非常嚴(yán)格的場(chǎng)景(人臉識(shí)別、車輛識(shí)別),這樣在識(shí)別之前還要對(duì)圖片進(jìn)行轉(zhuǎn)化,無(wú)疑是增加了輸出結(jié)果的時(shí)間。技術(shù)實(shí)力不那么強(qiáng)的公司可能是需要權(quán)衡一下的。
模糊(blur)
模糊也是工業(yè)中經(jīng)常遇到且令人十分頭痛的問(wèn)題。這里我們先將模糊分下類:
- 運(yùn)動(dòng)模糊:人體移動(dòng)、車輛移動(dòng)
- 對(duì)焦模糊:攝像頭距離等因素構(gòu)成,類似近視眼,圖像中低頻存在,高頻缺失。所以需要用算法設(shè)法補(bǔ)齊高頻部分。
- 低分辨率差值模糊:小圖放大等,圖像中低頻存在,高頻缺失。所以需要用算法設(shè)法補(bǔ)齊高頻部分。
- 混合模糊:多種模糊類型共同存在
對(duì)于模糊產(chǎn)品上能控制的場(chǎng)景比較少,僅針對(duì)于第一種運(yùn)動(dòng)模糊且產(chǎn)品和用戶有交互的情況下才能做到。其他類型的模糊均需要采用算法進(jìn)行處理。
我們發(fā)現(xiàn)大多數(shù)模型(包括face++等技術(shù)比較前沿公司的模型),也會(huì)出現(xiàn)大量正常圖像被判為模糊。從算法角度講這可能不是很理想,但從工業(yè)角度講這是可以被接受的,被誤判為模糊圖像的正常圖像會(huì)被過(guò)濾掉或者經(jīng)過(guò)算法處理后再識(shí)別,這對(duì)用戶來(lái)說(shuō)不會(huì)造成使用上的不適。而且我們也能保證閾值以上的圖都是正常圖片,對(duì)模型訓(xùn)練來(lái)說(shuō)也是有利的。所以,產(chǎn)品需要關(guān)注的精確率和召回率在某種特定情況下可以降低要求。
影響圖像質(zhì)量的因素除了光照、模糊還有很多比如噪聲、分辨率等等問(wèn)題,這些問(wèn)題大多也是從算法和硬件上去優(yōu)化,值得注意的是我之前提過(guò)的,需要考慮到時(shí)間和成本的權(quán)衡。
三、早期視覺(jué)(early vision)
early vision這部分其實(shí)我之前沒(méi)有總的概念,看了徐立的分享,回頭來(lái)才發(fā)現(xiàn)“哦!原來(lái)大家當(dāng)時(shí)做的是這個(gè)部分的內(nèi)容”。
early vision主要是做哪些工作呢?主要是圖像分割、邊緣求取、運(yùn)動(dòng)和深度的估計(jì)。這些內(nèi)容其實(shí)沒(méi)有直接的結(jié)果應(yīng)用,是一個(gè)“中間狀態(tài)”。
圖像分割是指將特定的影像分割成【區(qū)域內(nèi)部屬性一致】而【區(qū)域間不一致】的技術(shù),是圖像處理中最基礎(chǔ)和最重要的領(lǐng)域之一。
圖像分割方法有很多種,比如灰度閾值分割的方法、邊緣檢測(cè)法和區(qū)域跟蹤等方法。很多種類的圖像或景物都有相對(duì)應(yīng)的分割方式對(duì)其分割,但同時(shí)有些分割方法也僅限于某些特殊類型的圖像分割。
拿邊緣檢測(cè)來(lái)說(shuō),其目的是找到圖像中亮度變化劇烈的像素點(diǎn)構(gòu)成的集合,表現(xiàn)出來(lái)就是輪廓。
徐立提出了early vision現(xiàn)目前的兩個(gè)問(wèn)題:
- 結(jié)果不精確
- 需要長(zhǎng)時(shí)間的知識(shí)沉淀才能做到
第一個(gè)問(wèn)題的解決辦法是用端到端的方式,第二個(gè)問(wèn)題的解決辦法可以依靠數(shù)據(jù)驅(qū)動(dòng)。
這部分產(chǎn)品介入的比較少吧,平時(shí)跟算法同事溝通聽(tīng)見(jiàn)比較偏多的反饋是在圖像分割上有一些缺陷。像徐立說(shuō)的“怎么樣用這種中間的結(jié)果去得到更好的應(yīng)用,至今來(lái)說(shuō)覺(jué)得這都是一個(gè)比較難回答的問(wèn)題”,因此產(chǎn)品或許可以去考慮早期視覺(jué)直接應(yīng)用的場(chǎng)景。
四、識(shí)別理解(Recognition)
識(shí)別理解是需要把一張(輸入)圖對(duì)應(yīng)到一張(輸出)圖,或者說(shuō)一張(輸入)圖對(duì)應(yīng)到一個(gè)中間結(jié)果。簡(jiǎn)單來(lái)說(shuō)就是把一張圖對(duì)應(yīng)到一個(gè)文字或標(biāo)簽。這其中有兩個(gè)重要的因素:標(biāo)簽、數(shù)據(jù)。這兩個(gè)因素廣度和精度越高,針對(duì)模型最后的識(shí)別效果就越好。
標(biāo)簽
標(biāo)簽的定義其實(shí)也就是規(guī)則的定義,我在上一篇文章《AI產(chǎn)品經(jīng)理需要了解的數(shù)據(jù)標(biāo)注工作》里有提過(guò),越精確的標(biāo)簽肯定對(duì)模型的結(jié)果有利,但同時(shí)越精確的標(biāo)簽意味著這類標(biāo)簽下的數(shù)據(jù)量就會(huì)越少,產(chǎn)品也需要考慮到這個(gè)因素。
還有一些會(huì)被主觀因素影響的標(biāo)簽定義,比如顏值,每個(gè)人對(duì)顏值的評(píng)價(jià)都是不一樣的。徐立說(shuō)在他們的顏值模型里會(huì)分為“漂亮”“不漂亮”兩個(gè)標(biāo)簽,主要是靠社交網(wǎng)站上的評(píng)分和明星與大眾的區(qū)別來(lái)標(biāo)注。其實(shí)我以前也跟過(guò)顏值的模型,在我的模型里對(duì)顏值更加細(xì)化了:有好看、普通、丑。除了根據(jù)社交網(wǎng)站打分、明星打分這種方式,我的經(jīng)驗(yàn)是關(guān)注數(shù)據(jù)的場(chǎng)景類型,很多數(shù)據(jù)被歸為一類都是場(chǎng)景相似的。比如如花,我們覺(jué)得丑吧?大多數(shù)男扮女的裝扮也都會(huì)被定義為丑。
另外更細(xì)的標(biāo)簽細(xì)分會(huì)有更多的落地可能性,我印象最深的就是以前顏值模型有一個(gè)節(jié)日運(yùn)營(yíng)活動(dòng),主題是扮丑,辦得越丑的人還會(huì)有小禮品,這個(gè)活動(dòng)上線后在友商的用戶圈內(nèi)引起了很高的關(guān)注度。當(dāng)時(shí)我接到這個(gè)活動(dòng)的時(shí)候思想其實(shí)是被顛覆的,因?yàn)槲易铋_(kāi)始認(rèn)為顏值模型可能存在的場(chǎng)景主要是去識(shí)別美的人,比如在直播等平臺(tái)中去區(qū)分主播的顏值,推薦更優(yōu)質(zhì)的主播上首頁(yè)等等后端的應(yīng)用,沒(méi)有想過(guò)還能反著用。經(jīng)過(guò)這個(gè)活動(dòng)的啟發(fā),后來(lái)我們也發(fā)現(xiàn)顏值模型在娛樂(lè)性上可以有更多挖掘的可能性。
這樣看來(lái)由于我們的模型多了一個(gè)標(biāo)簽定義,就多了一種落地的可能性,標(biāo)簽的重要性也就不言而喻了。
數(shù)據(jù)優(yōu)化
數(shù)據(jù)的數(shù)量和質(zhì)量對(duì)模型來(lái)說(shuō)舉足重輕。最近剛接收到的重磅消息:阿法狗的弟弟阿法元沒(méi)有任何先驗(yàn)知識(shí)的前提下,通過(guò)完全的自學(xué),打敗了由數(shù)據(jù)訓(xùn)練出來(lái)的阿法狗。我相信以后這個(gè)技術(shù)肯定會(huì)越來(lái)越多的應(yīng)用,說(shuō)不定以后確實(shí)在某些領(lǐng)域不利用海量數(shù)據(jù)也能完成模型訓(xùn)練。但是就目前而言,在計(jì)算機(jī)視覺(jué)領(lǐng)域,數(shù)據(jù)的大量性是重中之重的。
我們大家肯定都知道,數(shù)據(jù)優(yōu)化可以使模型越來(lái)越好。什么類型的功能表現(xiàn)得不好,就要填補(bǔ)那些對(duì)應(yīng)的數(shù)據(jù)。而除了這個(gè)常識(shí)外,其實(shí)數(shù)據(jù)優(yōu)化還可以用來(lái)解決我們經(jīng)常在訓(xùn)練過(guò)程中出現(xiàn)的問(wèn)題:過(guò)擬合。
什么是過(guò)擬合?
通常來(lái)講是模型把數(shù)據(jù)學(xué)習(xí)過(guò)深,數(shù)據(jù)中的細(xì)節(jié)和噪音也學(xué)習(xí)進(jìn)去了,這樣就導(dǎo)致模型泛化的性能變差。過(guò)擬合的表現(xiàn)是,一個(gè)模型(一個(gè)假設(shè))在訓(xùn)練集上表現(xiàn)得很好,但是在測(cè)試集上表現(xiàn)的確不是很好。
那該如何通過(guò)數(shù)據(jù)限制過(guò)擬合呢?
- 重新清洗數(shù)據(jù)。數(shù)據(jù)的噪音太多會(huì)影響到模型效果,清洗數(shù)據(jù)能夠把由于這個(gè)因素造成的過(guò)擬合問(wèn)題規(guī)避
- 增加訓(xùn)練集的數(shù)據(jù)量。如果訓(xùn)練集占總數(shù)據(jù)的比例太少,也會(huì)造成過(guò)擬合。
當(dāng)然也能通過(guò)算法限制這個(gè)問(wèn)題的,比如正則化方法和dropout法,以后有空我們可以再深入討論。
五、項(xiàng)目實(shí)踐 (以車型識(shí)別舉例)
車輛檢測(cè)系統(tǒng)下有很多CV相關(guān)的應(yīng)用,比如車型識(shí)別、車牌識(shí)別、車顏色識(shí)別等等。我們從車型識(shí)別這一個(gè)例子著手,探索項(xiàng)目的具體流程。
項(xiàng)目前期準(zhǔn)備
1.數(shù)據(jù)準(zhǔn)備:
車型這個(gè)主題說(shuō)大不大,說(shuō)小不小。全世界的車輛品牌數(shù)目大約三四百個(gè),每個(gè)品牌下面又有幾十種車系。我們從0開(kāi)始立項(xiàng),至少需要把常見(jiàn)的車輛車系都包含。像大眾、豐田、奔馳、寶馬、奧迪、現(xiàn)代等等熱門車輛品牌更是需要拿全數(shù)據(jù)。每一種車型至少有車頭、車尾、車身三種基礎(chǔ)數(shù)據(jù)。
比如奔馳C200:
這三張圖片代表了三種數(shù)據(jù),不同場(chǎng)景下這三種數(shù)據(jù)的重要性大為不同。在項(xiàng)目前期假設(shè)我們定下來(lái)識(shí)別車型這個(gè)需求主要應(yīng)用場(chǎng)景是“停車場(chǎng)識(shí)別車輛”,那車頭這個(gè)數(shù)據(jù)相對(duì)而言就更加重要,需要花更多心思收集。為什么呢?我們可以想象,停車場(chǎng)的車輛識(shí)別攝像頭為了捕捉車牌號(hào),一般會(huì)將攝像頭正對(duì)車輛,攝像頭傳上來(lái)的數(shù)據(jù)很少會(huì)有純側(cè)面車身的數(shù)據(jù)甚至車尾數(shù)據(jù)。我們?yōu)榱隧?xiàng)目更快地應(yīng)用落地,其他類型數(shù)據(jù)比較缺少的情況是可以暫時(shí)放下后期再做優(yōu)化的。
在數(shù)據(jù)準(zhǔn)備的過(guò)程中,首先需要爬蟲(chóng)從網(wǎng)上爬取數(shù)據(jù),再由人工篩選過(guò)濾到不可用的數(shù)據(jù),將數(shù)據(jù)統(tǒng)一整合,才能進(jìn)行下一步工作。
2.文檔準(zhǔn)備
A)數(shù)據(jù)標(biāo)注文檔,包括我們項(xiàng)目一共所含多少鐘車型、每一種車型分別對(duì)應(yīng)什么樣式。數(shù)據(jù)標(biāo)注中需要注意的問(wèn)題,多輛車的圖片、角度刁鉆的圖片是否需要舍棄等等。
B)產(chǎn)品文檔,包括落地場(chǎng)景說(shuō)明、需求說(shuō)明文檔等常規(guī)文檔。這里拿工業(yè)車輛識(shí)別需求分析下系統(tǒng)設(shè)計(jì):
- 算法需求描述(識(shí)別的種類、范圍、速度、準(zhǔn)確率、穩(wěn)定性等等)
- 攝像頭設(shè)備硬件需求描述、環(huán)境描述、數(shù)據(jù)傳送描述、攝像頭配置描述
- 平臺(tái)程序設(shè)計(jì)(車輛識(shí)別系統(tǒng)平臺(tái)前后端設(shè)計(jì))
- 數(shù)據(jù)關(guān)聯(lián)描述(車輛信息分析統(tǒng)計(jì)關(guān)聯(lián))
如果攝像頭在局域網(wǎng),且有布控功能(識(shí)別車輛黑名單的需求)還需要:
- 下發(fā)程序(考慮云端到本地的圖像特征下發(fā))
- 點(diǎn)播程序設(shè)計(jì)(可以從互聯(lián)網(wǎng)查看本地?cái)z像頭)
項(xiàng)目流程跟蹤
1.軟硬件端:按照常規(guī)的軟硬件項(xiàng)目跟蹤開(kāi)發(fā)
2.算法:車型識(shí)別的流程基本如下:
車型圖像上傳:通過(guò)過(guò)攝像頭/web上傳
圖像預(yù)處理:包含了上文成像部分中的模糊圖像恢復(fù)處理(運(yùn)動(dòng)模糊有快速算法去模糊:通過(guò)已知速度V、位移S,確定圖像中任意點(diǎn)的值)
early vision中的圖像分割(將目標(biāo)圖像從背景圖中標(biāo)識(shí)出來(lái),便于圖像識(shí)別,可以考慮邊緣檢測(cè)方法)、圖像二值化(將圖像中的像素點(diǎn)的灰度值設(shè)置為0或者255,使用輪廓跟蹤讓目標(biāo)輪廓更為凸顯)
圖像特征提取
特征比對(duì)
項(xiàng)目測(cè)試
- 攝像頭測(cè)試
- 攝像頭與點(diǎn)播程序測(cè)試
- 點(diǎn)播程序(可實(shí)時(shí)查看攝像頭的程序)與平臺(tái)后臺(tái)程序測(cè)試
- 算法與平臺(tái)后臺(tái)測(cè)試、備用接口測(cè)試
- 模型識(shí)別時(shí)間測(cè)試
- 模型識(shí)別準(zhǔn)確率、召回率測(cè)試
- 服務(wù)器穩(wěn)定性測(cè)試
- 網(wǎng)絡(luò)帶寬限制測(cè)試
- 正反向測(cè)試
- 其他平臺(tái)、硬件產(chǎn)品常規(guī)測(cè)試
- 項(xiàng)目驗(yàn)收
產(chǎn)品按照流程功能逐一驗(yàn)收
六、后記
今天從產(chǎn)品實(shí)踐角度梳理了下計(jì)算機(jī)視覺(jué)的鏈條,里面可能不怎么涉及到算法知識(shí),我更多的是想通過(guò)分享我個(gè)人經(jīng)歷給大家,能產(chǎn)生更多在產(chǎn)品上的碰撞。
當(dāng)然在整個(gè)流程中還有很多有意思的事,大家可以多了解相關(guān)的知識(shí),有想法也可以和我多多交流.
本文由 @Jasmine 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自PEXELS,基于CC0協(xié)議
- 目前還沒(méi)評(píng)論,等你發(fā)揮!