需要注意的是: 更改完源程序.c文件,需要對整個項目重新編譯、make install,對已經生成的文件進行更新,類似于之前VS中在一個類中增加新函數重新編譯封裝dll,而python接口的調用主要使用的是libdarknet.so文件,其余在配置文件中的修改不必重新進行編譯安裝。
之前訓練好的模型,在模型調用的時候,總是在
lib = CDLL("/home/*****/*******/darknet/libdarknet.so", RTLD_GLOBAL)這里讀不到darknet編譯生成的.so文件,導致直接的報錯;之前以為是文件路徑的問題,稀里糊涂的;由于很久不寫c文件了,所以最后直接在python接口后在py文件中修改的畫框、標置信度等操作,一次次的嘗試后終于成功
(1)將項目中python文件下的darknet.py文件拷貝到根目錄,和/libdarknet.so在同一個目錄下
(2)整個demo程序都是用絕對路徑;
實現yolov3模型加載,批量讀取文件夾下的照片到庫函數變量,最終處理結果存入在另外新建文件夾
###2019.04.03 by ylxb def showPicResult(image,peoplecar,outimage): img = cv2.imread(image) out_img =outimage cv2.imwrite(out_img, img) for i in range(len(peoplecar)): x1=peoplecar[i][2][0]-peoplecar[i][2][2]/2 y1=peoplecar[i][2][1]-peoplecar[i][2][3]/2 x2=peoplecar[i][2][0]+peoplecar[i][2][2]/2 y2=peoplecar[i][2][1]+peoplecar[i][2][3]/2 im = cv2.imread(out_img) cv2.rectangle(im,(int(x1),int(y1)),(int(x2),int(y2)),(255,255,0),3) text = listpeoplecar[i][0] # 在圖片上添加文字信息 if(text=="people"): carcol=(55, 55, 255)#顏色顯示 else: carcol = (255, 55, 55) cv2.putText(im, text, (int(x1), int(y1)), cv2.FONT_HERSHEY_SIMPLEX, 0.8, carcol, 1, cv2.LINE_AA) #This is a method that works well. cv2.imwrite(out_img, im)
###2019.04.03 by ylxb filenames = os.listdir(picDir) i = 0 num = 0#目標個數 car_num = 0#car個數 people_num = 0#people個數 car = "car" # car元素 people = "people" # people元素 for name in filenames: filename=os.path.join(picDir,name) #print(filename) listpeoplecar = detect(net, meta, filename) print(listpeoplecar) i = i + 1 #save_picpath = out_img+str(filename).split("/")[-1].split(".")[0] + ".png" out_img=out_img1+str(i)+'.png' showPicResult(filename,listpeoplecar,out_img) for item in listpeoplecar: #print(item) car_num = car_num + item[0].count(car)#car個數 people_num = people_num + item[0].count(people)#people個數 num = num + 1#目標個數 print('car個數: ' + str(car_num)) print('people個數: ' + str(people_num)) print('共檢測出目標個數: ' + str(num)) print('共檢測照片個數:'+ str(i))
放其中一個照片測試照片:
以上這篇對YOLOv3模型調用時候的python接口詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
