国产无码免费,人妻口爆,国产V在线,99中文精品7,国产成人无码AA精品一,制度丝袜诱惑av,久久99免费麻辣视频,蜜臀久久99精品久久久久久酒店
        訂閱
        糾錯
        加入自媒體

        如何使用Python+OpenCV+Keras實現無口罩車輛駕駛員懲罰生成

        2021-06-18 15:44
        磐創AI
        關注

        將Flask與兩個模型和MongoDB集成以實現端到端流程我們創建了一個flask main.py,該flask鏈接到各種HTML模板,以從用戶那里獲取前端汽車駕駛員圖像的輸入。然后,該圖像由CNN模型處理,以在后端進行口罩檢測,并且無論駕駛員是否戴口罩,結果都將顯示在HTML模板中。下面的代碼以圖像文件的形式從用戶那里獲取輸入,對圖像應用各種預處理技術,例如調整大小,灰度,重新排列圖像陣列,然后將圖像發送到已經訓練好的模型以確定輸出。@app.route('/', methods=['POST'])
        def upload_file():
           img_size=100
           data=[]
           uploaded_file = request.files['file']
           result=''
           if uploaded_file.filename != '':
               filename = uploaded_file.filename
               uploaded_file.save(os.path.join(app.config['UPLOAD_PATH'], filename))

              img_path = os.path.join(app.config['UPLOAD_PATH'], filename)
               print(img_path)
               img=cv2.imread(img_path)
               gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
               resized=cv2.resize(gray,(img_size,img_size))
               data.append(resized)
               data=np.array(data)/255.0
               data=np.reshape(data,(data.shape[0],img_size,img_size,1))
               
               new_model = load_model('saved_model/my_model')
               output = new_model.predict(data)
               
               if output[0][0]>=0.5:
                   result = 'The person is Masked'
               else:
                   result = 'The Person is Non Masked'
               print(result)
           return render_template('Show.html',result=result)
        以下是HTML模板,該HTML模板作為上載圖像文件的一部分顯示給用戶。

        下面是一個Html模板,當POST方法在處理完圖像后發送結果時顯示,顯示駕駛員是否戴了口罩。

        接下來,我們上傳車輛圖像,該圖像已被確定為駕駛員沒有戴口罩。車輛的圖像再次通過圖像預處理階段進行處理,在該階段中,模型會嘗試從車牌中的車牌框中提取文本。@app.route('/Vehicle', methods=['POST'])
        def table2():
           uploaded_file = request.files['file']
           result=''
           if uploaded_file.filename != '':
               path='static/car'
               filename = uploaded_file.filename
               uploaded_file.save(os.path.join(path, filename))
               img_path = os.path.join(path, filename)
               print(img_path)
               img = cv2.imread(img_path,cv2.IMREAD_COLOR)
               img = cv2.resize(img, (600,400) )
               gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
               gray = cv2.bilateralFilter(gray, 13, 15, 15)
               edged = cv2.Canny(gray, 30, 200)
               contours = cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
               contours = imutils.grab_contours(contours)
               contours = sorted(contours, key = cv2.contourArea, reverse = True)[:10]
               screenCnt = None
           
               for c in contours:
                   peri = cv2.arcLength(c, True)
                   approx = cv2.approxPolyDP(c, 0.018 * peri, True)

                   if len(approx) == 4:
                       screenCnt = approx
                       break
               if screenCnt is None:
                   detected = 0
                   print ("No contour detected")
               else:
                   detected = 1  
               if detected == 1:
                   cv2.drawContours(img, [screenCnt], -1, (0, 0, 255), 3)
               mask = np.zeros(gray.shape,np.uint8)
               new_image = cv2.drawContours(mask,[screenCnt],0,255,-1,)
               new_image = cv2.bitwise_and(img,img,mask=mask)
               (x, y) = np.where(mask == 255)
               (topx, topy) = (np.min(x), np.min(y))
               (bottomx, bottomy) = (np.max(x), np.max(y))
               Cropped = gray[topx:bottomx+1, topy:bottomy+1]
               text = pytesseract.image_to_string(Cropped, config='--psm 11')
               print("Detected license plate Number is:",text)    
              #text='GJW-1-15-A-1138'
               print('"{}"'.format(text))
               re.sub(r'[^-]',r'', text)
               text = text.replace("", " ")
               text = re.sub('[W_]+', '', text)
               print(text)
               print('"{}"'.format(text))
               query1 = {"Number Plate": text}
               print("0")
               for doc in collection.find(query1):
                  doc1 = doc
               Name=doc1['Name']
               Address=doc1['Address']
               License=doc1['License Number']
           return render_template('Penalty.html',Name=Name,Address=Address,License=License)
        以下是車輛圖像上傳頁面,該頁面接收用戶的輸入并處理車輛圖像以獲得車牌號文字。

        提取車牌編號的文本后,我們需要使用車號牌查找車牌持有人的詳細信息,接下來我們將連接到MongoDB創建的名為License_Details的表。一旦獲得了車牌號,名稱,地址等詳細信息,我們就可以生成罰款并將其顯示在HTML模板頁面上。

        未來的工作與訓練精度相比,口罩模型的測試精度要低得多。因此,未知數據集的錯誤分類非常高。另外,我們需要努力提高基于OpenCV的車牌提取的準確性,因為錯誤的關注區域可能會導致提取空的車牌文本。另外,可以進一步改善前端,使其更具吸引力。參考

        image.png


        <上一頁  1  2  3  4  
        聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯系舉報。

        發表評論

        0條評論,0人參與

        請輸入評論內容...

        請輸入評論/評論長度6~500個字

        您提交的評論過于頻繁,請輸入驗證碼繼續

        暫無評論

        暫無評論

          人工智能 獵頭職位 更多
          掃碼關注公眾號
          OFweek人工智能網
          獲取更多精彩內容
          文章糾錯
          x
          *文字標題:
          *糾錯內容:
          聯系郵箱:
          *驗 證 碼:

          粵公網安備 44030502002758號

          主站蜘蛛池模板: 杭锦旗| 99xa视频在线观看| 3P网站| 江西省| 久久草网站| 汉沽区| 伊人久久大香线蕉av一区 | 新民市| 亚洲欧洲AV| 美女毛片| 91免费高清| 无码色亚洲| 瓮安县| 国产精品综合| 神农架林区| 黄wwwww| 人妻少妇嫩草被猛烈进入无码蜜桃| 亚洲日本91| 91免费在线| 91视频污| AV网站免费看| 专区国产无码| 从江县| AV在线影院| 淫荡人妻中文字幕| 佳木斯市| 国产xxxxxx| 无码人妻一区二区三区线花季传件| 赣州市| 色窝视频| 国产丝袜精品在线播放| 人妻少妇| 亚州脚交| 色二区| 亚洲黄色短视频| 新巴尔虎右旗| 精品人妻伦九区久久AAA片| 亚洲中文字幕一区二区| 株洲县| 国产九九| 熟女国产精品网站|