Python? 基于 OpenCV 視覺圖像處理實(shí)戰(zhàn)? 之 背景知識
目錄
Python? 基于 OpenCV 視覺圖像處理實(shí)戰(zhàn)? 之 背景知識
一、簡單介紹
二、人工智能(Artificial Intelligence,AI)
三、OpenCV
四、計(jì)算機(jī)視覺任務(wù)的主要類型
五、計(jì)算機(jī)視覺是通過創(chuàng)建人工模型來模擬本該由人類執(zhí)行的視覺任務(wù)。
一、簡單介紹
Python是一種跨平臺的計(jì)算機(jī)程序設(shè)計(jì)語言。是一種面向?qū)ο蟮膭討B(tài)類型語言,最初被設(shè)計(jì)用于編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越多被用于獨(dú)立的、大型項(xiàng)目的開發(fā)。Python是一種解釋型腳本語言,可以應(yīng)用于以下領(lǐng)域: Web 和 Internet開發(fā)、科學(xué)計(jì)算和統(tǒng)計(jì)、人工智能、教育、桌面界面開發(fā)、軟件開發(fā)、后端開發(fā)、網(wǎng)絡(luò)爬蟲。
這里使用 Python? 基于 OpenCV 進(jìn)行視覺圖像處理,......
二、人工智能(Artificial Intelligence,AI)
人工智能(Artificial Intelligence,AI)的定義,百度百科是這樣解釋的:
它是一門研究和開發(fā)用于模擬和拓展人類智能的理論方法和技術(shù)手段的新興科學(xué)技術(shù)。人工智能是計(jì)算機(jī)科學(xué)的一個分支,它企圖了解智能的實(shí)質(zhì),并生產(chǎn)出一種新的能以人類智能相似的方式做出反應(yīng)的智能機(jī)器,該領(lǐng)域的研究包括機(jī)器人、語言識別、圖像識別、自然語言處理和專家系統(tǒng)等。人工智能從誕生以來,其理論和技術(shù)日益成熟,應(yīng)用領(lǐng)域也不斷擴(kuò)大,可以設(shè)想,未來,人工智能帶來的科技產(chǎn)品將會是人類智慧的“容器”。人工智能可以對人的意識、思維的信息過程進(jìn)行模擬。人工智能不是人的智能,但能像人那樣思考,也可能超過人的智能。
三、OpenCV
OpenCV 是一個基于Apache2.0許可(開源)發(fā)行的跨平臺計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。 它輕量級而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時提供了Python、Ruby、MATLAB等語言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。
OpenCV用C++語言編寫,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要傾向于實(shí)時視覺應(yīng)用,并在可用時利用MMX和SSE指令, 如今也提供對于C#、Ch、Ruby,GO的支持。
OpenCV提供的視覺處理算法非常豐富,并且它部分以C語言編寫,加上其開源的特性,處理得當(dāng),不需要添加新的外部支持也可以完整的編譯鏈接生成執(zhí)行程序,所以很多人用它來做算法的移植,OpenCV的代碼經(jīng)過適當(dāng)改寫可以正常的運(yùn)行在DSP系統(tǒng)和ARM嵌入式系統(tǒng)中,這種移植在大學(xué)中經(jīng)常作為相關(guān)專業(yè)本科生畢業(yè)設(shè)計(jì)或者研究生課題的選題。
2022年12月8日,龍芯中科宣布,近期,OpenCV 開源社區(qū)正式合入了對 LoongArch 架構(gòu)支持的代碼,基于龍架構(gòu)自主指令系統(tǒng),優(yōu)化后的 OpenCV 性能顯著提升。
為什么有OpenCV,它有什么優(yōu)勢
計(jì)算機(jī)視覺市場巨大而且持續(xù)增長,且這方面沒有標(biāo)準(zhǔn)API,如今的計(jì)算機(jī)視覺軟件大概有以下三種:
1、研究代碼(慢,不穩(wěn)定,獨(dú)立并與其他庫不兼容)
2、耗費(fèi)很高的商業(yè)化工具(比如Halcon, MATLAB+Simulink)
3、依賴硬件的一些特別的解決方案(比如視頻監(jiān)控,制造控制系統(tǒng),醫(yī)療設(shè)備)這是如今的現(xiàn)狀,而標(biāo)準(zhǔn)的API將簡化計(jì)算機(jī)視覺程序和解決方案的開發(fā),OpenCV致力于成為這樣的標(biāo)準(zhǔn)API。
OpenCV致力于真實(shí)世界的實(shí)時應(yīng)用,通過優(yōu)化的C代碼的編寫對其執(zhí)行速度帶來了可觀的提升,并且可以通過購買Intel的IPP高性能多媒體函數(shù)庫(Integrated Performance Primitives)得到更快的處理速度。圖1為OpenCV與當(dāng)前其他主流視覺函數(shù)庫的性能比較。
四、計(jì)算機(jī)視覺任務(wù)的主要類型
計(jì)算機(jī)視覺的主要任務(wù)就是通過對采集的圖片或視頻進(jìn)行處理以獲得相應(yīng)場景的信息。
1.物體檢測
物體檢測是視覺感知的第一步,也是計(jì)算機(jī)視覺的一個重要分支。物體檢測的目標(biāo)就是用框去標(biāo)出物體的位置,并給出物體的類別。
物體檢測和圖像分類不一樣,檢測側(cè)重于物體的搜索,而且物體檢測的目標(biāo)必須要有固定的形狀和輪廓。圖像分類可以是任意目標(biāo),這個目標(biāo)可能是物體,也可能是一些屬性或者場景。
2.物體識別(狹義)
計(jì)算機(jī)視覺的經(jīng)典問題便是判定一組圖像數(shù)據(jù)中是否包含某個特定的物體、圖像特征或運(yùn)動狀態(tài)。這一問題通??梢酝ㄟ^機(jī)器自動解決,但是到目前為止,還沒有哪個單一的方法能夠廣泛地對各種情況進(jìn)行判定:在任意環(huán)境中識別任意物體。
現(xiàn)有技術(shù)能夠很好地解決特定目標(biāo)的識別,比如簡單幾何圖形的識別、人臉識別、印刷或手寫文件識別和車輛識別。而且這些識別需要在特定的環(huán)境中,具有指定的光照、背景和目標(biāo)姿態(tài)等要求。
3.圖像分類
一張圖像中是否包含某種物體,以及對圖像進(jìn)行特征描述,是物體分類的主要研究內(nèi)容。一般來說,物體分類算法通過手工特征或者特征學(xué)習(xí)方法對整個圖像進(jìn)行全局描述,然后使用分類器判斷是否存在某類物體。
圖像分類問題就是給輸入的圖像分配標(biāo)簽的任務(wù),這是計(jì)算機(jī)視覺的核心問題之一。這個過程往往與機(jī)器學(xué)習(xí)和深度學(xué)習(xí)不可分割。
4.物體定位
如果說圖像識別解決的是What的問題,那么物體定位解決的則是Where的問題。利用計(jì)算視覺技術(shù)找到圖像中某一目標(biāo)物體在圖像中的位置,即定位。
目標(biāo)物體的定位對于計(jì)算機(jī)視覺在安防、自動駕駛等領(lǐng)域的應(yīng)用有著至關(guān)重要的意義。
5.圖像分割
在圖像處理過程中,有時需要對圖像進(jìn)行分割,從中提取出有價值的用于后續(xù)處理的部分,例如篩選特征點(diǎn),或者分割一幅或多幅圖片中含有特定目標(biāo)的部分等。
圖像分割指的是將數(shù)字圖像細(xì)分為多個圖像子區(qū)域(像素的集合,也被稱為超像素)的過程。圖像分割的目的是簡化或改變圖像的表示形式,使圖像更容易被理解和分析。更精確地說,圖像分割是對圖像中的每個像素添加標(biāo)簽的一個過程,這一過程使得具有相同標(biāo)簽的像素具有某種共同的視覺特性。
“圖像語意分割”是一個像素級別的物體識別,即每個像素點(diǎn)都要判斷它的類別。它和物體檢測的本質(zhì)區(qū)別是,物體檢測是一個物體級別的,它只需要一個框去框住物體的位置;而分割通常比檢測更復(fù)雜。
五、計(jì)算機(jī)視覺是通過創(chuàng)建人工模型來模擬本該由人類執(zhí)行的視覺任務(wù)。
其本質(zhì)是模擬人類的感知與觀察的過程。這個過程不僅是識別,而且還包含了一系列其他過程,并且最終是可以在人工系統(tǒng)中被理解和實(shí)現(xiàn)的。文章來源:http://www.zghlxwxcb.cn/news/detail-848899.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-848899.html
到了這里,關(guān)于Python 基于 OpenCV 視覺圖像處理實(shí)戰(zhàn) 之 背景知識的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!