国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

計算機設計大賽 深度學習人體語義分割在彈幕防遮擋上的實現(xiàn) - python

這篇具有很好參考價值的文章主要介紹了計算機設計大賽 深度學習人體語義分割在彈幕防遮擋上的實現(xiàn) - python。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1 前言

?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是

?? 深度學習人體語義分割在彈幕防遮擋上的應用

該項目較為新穎,適合作為競賽課題方向,學長非常推薦!

??學長這里給一個題目綜合評分(每項滿分5分)

  • 難度系數(shù):3分
  • 工作量:3分
  • 創(chuàng)新點:3分

?? 更多資料, 項目分享:

https://gitee.com/dancheng-senior/postgraduate文章來源地址http://www.zghlxwxcb.cn/news/detail-829316.html

1 課題背景

彈幕是顯示在視頻上的評論,可以以滾動、停留甚至更多動作特效方式出現(xiàn)在視頻上,是觀看視頻的人發(fā)送的簡短評論。

各大視頻網(wǎng)站目前都有彈幕功能,之家也于2020年5月正式上線視頻彈幕功能,受到了廣大網(wǎng)友的喜愛,大家在觀看視頻的同時,也能通過彈幕進行互動。

但密集的彈幕,遮擋視頻畫面,嚴重影響用戶觀看體驗,如何解決?
計算機設計大賽 深度學習人體語義分割在彈幕防遮擋上的實現(xiàn) - python,python
查閱了相關視頻網(wǎng)站,發(fā)現(xiàn)B站推出了一種蒙版彈幕技術,可以讓彈幕自動躲避人形區(qū)域,達到彈幕不擋人的效果。
B站視頻彈幕不擋人的效果

計算機設計大賽 深度學習人體語義分割在彈幕防遮擋上的實現(xiàn) - python,python

2 技術原理和方法

2.1基本原理

通過AI計算機視覺的技術,對視頻內(nèi)容進行分析,并將之前已經(jīng)定義好的“視頻主體內(nèi)容”進行識別,生成蒙版并分發(fā)給客戶端后,讓客戶端利用 CSS3
的特性進行渲染從而達成最終的效果。這樣就形成了我們最終看到的,“不擋臉”彈幕效果。

實現(xiàn)方法就正如 PS
中的“蒙版“一樣,實心區(qū)域允許,空白區(qū)域拒絕,從而達到彈幕不擋人的效果。而技術的核心就在蒙版的生成上,所以將這個功能稱之為“蒙版彈幕”。

2.2 技術選型和方法

1、提取視頻幀畫面。對音視頻的處理,大家一般都會想到FFmpeg組件,我們也是使用FFmpeg組件提取每幀的視頻畫面,使用的是PyAV組件,PyAV是FFmpeg封裝,能夠靈活的編解碼視頻和音頻,并且支持Python常用的數(shù)據(jù)格式(如numpy)。

2、識別視頻幀畫面人像區(qū)域。解決方案:使用AI計算機視覺的實例分割技術,可以識別視頻幀畫面的人像區(qū)域。

3、AI框架:目前市面上的AI框架,主要以TensorFlow,PyTorch最流行。

  • TensorFlow :出身豪門的工業(yè)界霸主,由Google Brain團隊研發(fā)。具有如下優(yōu)點:支持多種編程語言;靈活的架構支持多GPU、分布式訓練,跨平臺運行能力強;自帶 TensorBoard 組件,能可視化計算圖,便于讓用戶實時監(jiān)控觀察訓練過程;官方文檔非常詳盡,可查詢資料眾多;社區(qū)龐大,大量開發(fā)者活躍于此。
  • PyTorch :以動態(tài)圖崛起的學術界寵兒,是基于 Torch 并由Facebook強力支持的python端的開源深度學習庫。具有如下優(yōu)點:簡潔: PyTorch 在設計上更直觀,追求盡量少的封裝,建模過程透明,代碼易于理解;易用:應用十分靈活,接口沿用 Torch ,契合用戶思維,盡可能地讓用戶實現(xiàn)“所思即所得”,不過多顧慮框架本 PyTorch 。原因: TensorFlow 入門難度較大,學習門檻高,系統(tǒng)設計過于復雜;而 PyTorch 入門難度低,上手快,而且提供的功能也非常易用,預訓練模型也非常多。

4、實例分割技術:實例分割(Instance Segmentation)是視覺經(jīng)典四個任務中相對最難的一個,它既具備語義分割(Semantic
Segmentation)的特點,需要做到像素層面上的分類,也具備目標檢測(Object
Detection)的一部分特點,即需要定位出不同實例,即使它們是同一種類。

3 實例分割

簡介
實例分割已成為機器視覺研究中比較重要、復雜和具有挑戰(zhàn)性的領域之一。為了預測對象類標簽和特定于像素的對象實例掩碼,它對各種圖像中出現(xiàn)的對象實例的不同類進行本地化。實例分割的目的主要是幫助機器人,自動駕駛,監(jiān)視等。

實例分割同時利用目標檢測和語義分割的結(jié)果,通過目標檢測提供的目標最高置信度類別的索引,將語義分割中目標對應的Mask抽取出來。實例分割顧名思義,就是把一個類別里具體的一個個對象(具體的一個個例子)分割出來。
計算機設計大賽 深度學習人體語義分割在彈幕防遮擋上的實現(xiàn) - python,python
Mask R-CNN算法
本項目使用Mask R-CNN算法來進行圖像實例分割。
網(wǎng)絡結(jié)構圖:
計算機設計大賽 深度學習人體語義分割在彈幕防遮擋上的實現(xiàn) - python,python
Mask R-CNN,一個相對簡單和靈活的實例分割模型。該模型通過目標檢測進行了實例分割,同時生成了高質(zhì)量的掩模。通常,F(xiàn)aster
R-CNN有一個用于識別物體邊界框的分支。Mask R-CNN并行添加了一個對象蒙版預測分支作為改進。使用FPN主干的head架構如圖所示。
計算機設計大賽 深度學習人體語義分割在彈幕防遮擋上的實現(xiàn) - python,python
關鍵代碼

?



    ##利用不同的顏色為每個instance標注出mask,根據(jù)box的坐標在instance的周圍畫上矩形
    ##根據(jù)class_ids來尋找到對于的class_names。三個步驟中的任何一個都可以去掉,比如把mask部分
    ##去掉,那就只剩下box和label。同時可以篩選出class_ids從而顯示制定類別的instance顯示,下面
    ##這段就是用來顯示人的,其實也就把人的id選出來,然后記錄它們在輸入ids中的相對位置,從而得到
    ##相對應的box與mask的準確順序
    def display_instances_person(image, boxes, masks, class_ids, class_names,
                          scores=None, title="",
                          figsize=(16, 16), ax=None):
        """
        the funtion perform a role for displaying the persons who locate in the image
        boxes: [num_instance, (y1, x1, y2, x2, class_id)] in image coordinates.
        masks: [height, width, num_instances]
        class_ids: [num_instances]
        class_names: list of class names of the dataset
        scores: (optional) confidence scores for each box
        figsize: (optional) the size of the image.
        """
        #compute the number of person
        temp = []
        for i, person in enumerate(class_ids):
            if person == 1:
                temp.append(i)
            else:
                pass
        person_number = len(temp)
        
        person_site = {}
        
        for i in range(person_number):
            person_site[i] = temp[i]


        NN = boxes.shape[0]   
        # Number of person'instances
        #N = boxes.shape[0]
        N = person_number
        if not N:
            print("\n*** No person to display *** \n")
        else:
           # assert boxes.shape[0] == masks.shape[-1] == class_ids.shape[0]
            pass
     
        if not ax:
            _, ax = plt.subplots(1, figsize=figsize)
     
        # Generate random colors
        colors = random_colors(NN)
     
        # Show area outside image boundaries.
        height, width = image.shape[:2]
        ax.set_ylim(height + 10, -10)
        ax.set_xlim(-10, width + 10)
        ax.axis('off')
        ax.set_title(title)
     
        masked_image = image.astype(np.uint32).copy()
        for a in range(N):
            
            color = colors[a]
            i = person_site[a]

            # Bounding box
            if not np.any(boxes[i]):
                # Skip this instance. Has no bbox. Likely lost in image cropping.
                continue
            y1, x1, y2, x2 = boxes[i]
            p = patches.Rectangle((x1, y1), x2 - x1, y2 - y1, linewidth=2,
                                  alpha=0.7, linestyle="dashed",
                                  edgecolor=color, facecolor='none')
            ax.add_patch(p)
     
            # Label
            class_id = class_ids[i]
            score = scores[i] if scores is not None else None
            label = class_names[class_id]
            x = random.randint(x1, (x1 + x2) // 2)
            caption = "{} {:.3f}".format(label, score) if score else label
            ax.text(x1, y1 + 8, caption,
                    color='w', size=11, backgroundcolor="none")
            
             # Mask
            mask = masks[:, :, i]
            masked_image = apply_mask(masked_image, mask, color)
     
            # Mask Polygon
            # Pad to ensure proper polygons for masks that touch image edges.
            padded_mask = np.zeros(
                (mask.shape[0] + 2, mask.shape[1] + 2), dtype=np.uint8)
            padded_mask[1:-1, 1:-1] = mask
            contours = find_contours(padded_mask, 0.5)
            for verts in contours:
                # Subtract the padding and flip (y, x) to (x, y)
                verts = np.fliplr(verts) - 1
                p = Polygon(verts, facecolor="none", edgecolor=color)
                ax.add_patch(p)
           
        ax.imshow(masked_image.astype(np.uint8))
        plt.show()


4 實現(xiàn)效果

原視頻
計算機設計大賽 深度學習人體語義分割在彈幕防遮擋上的實現(xiàn) - python,python
生成幀蒙板
計算機設計大賽 深度學習人體語義分割在彈幕防遮擋上的實現(xiàn) - python,python
最終效果
計算機設計大賽 深度學習人體語義分割在彈幕防遮擋上的實現(xiàn) - python,python

5 最后

?? 更多資料, 項目分享:

https://gitee.com/dancheng-senior/postgraduate

到了這里,關于計算機設計大賽 深度學習人體語義分割在彈幕防遮擋上的實現(xiàn) - python的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 計算機設計大賽 深度學習的視頻多目標跟蹤實現(xiàn)

    計算機設計大賽 深度學習的視頻多目標跟蹤實現(xiàn)

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 基于深度學習的視頻多目標跟蹤實現(xiàn) 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ?? 更多資料, 項目分享: https://gitee.com/dancheng-senior/postgraduate 基于初始化幀的跟蹤,在視頻第一幀中選擇你的目標,之后交給跟蹤算法去

    2024年03月11日
    瀏覽(508)
  • 計算機設計大賽 題目:基于深度學習的中文對話問答機器人

    計算機設計大賽 題目:基于深度學習的中文對話問答機器人

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 基于深度學習的中文對話問答機器人 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ?? 更多資料, 項目分享: https://gitee.com/dancheng-senior/postgraduate 整個項目分為 數(shù)據(jù)清洗 和 建立模型兩個部分。 (1)主要定義了seq2seq這樣

    2024年04月12日
    瀏覽(1879)
  • 計算機設計大賽 深度學習YOLO抽煙行為檢測 - python opencv

    計算機設計大賽 深度學習YOLO抽煙行為檢測 - python opencv

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 ?? 基于深度學習YOLO抽煙行為檢測 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:4分 ?? 更多資料, 項目分享: https://gitee.com/dancheng-sen

    2024年02月22日
    瀏覽(312)
  • 計算機設計大賽 深度學習人臉表情識別算法 - opencv python 機器視覺

    計算機設計大賽 深度學習人臉表情識別算法 - opencv python 機器視覺

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 ?? 深度學習人臉表情識別系統(tǒng) 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:4分 ?? 更多資料, 項目分享: https://gitee.com/dancheng-senior/

    2024年02月21日
    瀏覽(570)
  • 計算機設計大賽 深度學習疲勞檢測 駕駛行為檢測 - python opencv cnn

    計算機設計大賽 深度學習疲勞檢測 駕駛行為檢測 - python opencv cnn

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 ?? **基于深度學習加駕駛疲勞與行為檢測 ** 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):4分 工作量:3分 創(chuàng)新點:5分 ?? 更多資料, 項目分享: https://gitee.com

    2024年03月14日
    瀏覽(164)
  • 計算機設計大賽 深度學習衛(wèi)星遙感圖像檢測與識別 -opencv python 目標檢測

    計算機設計大賽 深度學習衛(wèi)星遙感圖像檢測與識別 -opencv python 目標檢測

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 ?? **深度學習衛(wèi)星遙感圖像檢測與識別 ** 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:5分 ?? 更多資料, 項目分享: https://gitee.com/da

    2024年02月22日
    瀏覽(100)
  • 計算機設計大賽 深度學習YOLO安檢管制物品識別與檢測 - python opencv

    計算機設計大賽 深度學習YOLO安檢管制物品識別與檢測 - python opencv

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 ?? **基于深度學習YOLO安檢管制誤判識別與檢測 ** 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):4分 工作量:3分 創(chuàng)新點:4分 ?? 更多資料, 項目分享: https://gi

    2024年02月20日
    瀏覽(99)
  • 計算機設計大賽 深度學習YOLOv5車輛顏色識別檢測 - python opencv

    計算機設計大賽 深度學習YOLOv5車輛顏色識別檢測 - python opencv

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 ?? **基于深度學習YOLOv5車輛顏色識別檢測 ** 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:4分 ?? 更多資料, 項目分享: https://gitee.com

    2024年02月19日
    瀏覽(174)
  • 計算機競賽 深度學習人體跌倒檢測 -yolo 機器視覺 opencv python

    計算機競賽 深度學習人體跌倒檢測 -yolo 機器視覺 opencv python

    ?? 優(yōu)質(zhì)競賽項目系列,今天要分享的是 ?? **基于深度學習的人體跌倒檢測算法研究與實現(xiàn) ** 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:5分 ?? 更多資料, 項目分享: https

    2024年02月08日
    瀏覽(105)
  • 計算機畢設 深度學習人體跌倒檢測 -yolo 機器視覺 opencv python

    計算機畢設 深度學習人體跌倒檢測 -yolo 機器視覺 opencv python

    ?? 這兩年開始畢業(yè)設計和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設題目缺少創(chuàng)新和亮點,往往達不到畢業(yè)答辯的要求,這兩年不斷有學弟學妹告訴學長自己做的項目系統(tǒng)達不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設,學長分享優(yōu)質(zhì)畢業(yè)設計項目,今天

    2024年02月14日
    瀏覽(98)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包