1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Real time multimodal baby monitoring system ,hệ thống giám sát em bé đa phương thức thời gian thực

68 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 68
Dung lượng 708,11 KB

Nội dung

UNIVERSITÉ NATIONALE DU VIETNAM, HANOÏ INSTITUT FRANCOPHONE INTERNATIONAL Abdoul Djalil OUSSEINI HAMZA Real Time Multimodal Baby Monitoring System Hệ thống giám sát em bé đa phương thức thời gian thực Spécialité : Systèmes Intelligents et Multimédia Code : 8480201.02 MÉMOIRE DE FIN D’ÉTUDES DU MASTER INFORMATIQUE Sous la direction de : Dr NGUYEN Trong Phuc - Ifi-solution HANOÏ - 2020 UNIVERSITÉ NATIONALE DU VIETNAM, HANOÏ INSTITUT FRANCOPHONE INTERNATIONAL Abdoul Djalil OUSSEINI HAMZA Real Time Multimodal Baby Monitoring System Hệ thống giám sát em bé đa phương thức thời gian thực Spécialité : Systèmes Intelligents et Multimédia Code : Programme pilote MÉMOIRE DE FIN D’ÉTUDES DU MASTER INFORMATIQUE Sous la direction de : Dr NGUYEN Trong Phuc - Ifi-solution HANOÏ - 2020 ATTESTATION SUR L’HONNEUR J’atteste sur l’honneur que ce mémoire a été réalisé par moi-même et que les données et les résultats qui y sont présentés sont exacts et n’ont jamais été publiés ailleurs La source des informations citées dans ce mémoire a été bien précisée LỜI CAM ĐOAN Tôi cam đoan cơng trình nghiên cứu riêng Các số liệu, kết nêu Luận văn trung thực chưa công bố cơng trình khác Các thơng tin trích dẫn Luận văn rõ nguồn gốc Signature de l’étudiant Abdoul Djalil OUSSEINI HAMZA Remerciements Je remercie d’abord Dieu le TOUT PUISSANT de m’avoir accordé des parents qui m’ont montré le chemin de l’école et grâce qui je suis présentement La réalisation de ce mémoire a été possible grâce au concours de plusieurs personnes qui je voudrais témoigner toute ma gratitude J’aimerais tout d’abord remercier mon encadreur pédagogique de stage Dr NGUYEN Trong Phuc Chef de projet - Ifi-Solution et enseignant chercheur l’université de Trans-port et de Communication de Hanoi, Vietnam La porte du bureau du Dr NGUYEN Trong Phuc était toujours ouverte chaque fois que je rencontrais un problème ou si j’avais une question sur mes recherches Il a toujours permis que ce document soit mon propre travail, mais il m’a guidé dans la bonne direction chaque fois qu’il pensait que j’en avais besoin Je tiens également remercier M Hoan Dinh Van manager Ifi-Solution qui a participé la réalisation et validation de ce projet Ce travail n’aurait pu être accompli sans leur effort et leur contributions passionnées Je voudrais remercier notre responsable de Master Dr Ho Tuong Vinh ainsi que tous les personnels pédagogiques et administratifs de l’Institut Francophone International, Université National de Vietnam Hanoi Je leur suis reconnaissant de tout cœur pour avoir assuré et amélioré la qualité de notre formation Enfin, je tiens exprimer ma profonde gratitude mes parents, ma famille et Mme Võ Thu Trang pour m’avoir apporté un soutien indéfectible et des encouragements constants tout au long de mes années de Master Sans oublier mes amis qui ont toujours été pour moi Votre soutien inconditionnel et vos encouragements ont été d’une grande aide Je vous remercie Abdoul Djalil OUSSEINI HAMZA Résumé Peu de travaux se sont intéressés la détection des mouvements des bébés dans leur berceaux et les rares travaux qui ont traité ce problème ont plutôt utilisé les algorithmes classiques de Machine Learning comme les SVM en tant que classifier Dans ce travail, nous proposons une nouvelle approche pour détecter les mouvement et les cris des nourrissons en se basant sur les nouvelles architectures des réseaux de neurones convolution CNN La première partie porte sur la présentation de la structure d’accueille où est décrit les missions et les départements qui composent l’entreprise La seconde partie fait mention de l’état de l’art dans laquelle les travaux connexes ont été développés et une étude comparative été établie La troisième partie opère sur les solutions proposées et les contributions apportées La quatrième partie fait l’objet des expérimentations et résultats où nous avons mené toutes nos expériences pour la réa-lisation du projet et enfin, la dernière partie porte sur la conclusion et les perspectives pour les futures travaux dans le domaine Mots clés : surveillance des bébés, détection d’objets, proposition de région, réseau neuronal convolutif, cri des bébé Abstract Few studies have focused on detecting the movements of babies in their cradles, and the few studies that have dealt with this problem have instead used conventional machine learning algorithms such as SVM as classifiers In this work, we propose a new approach to detect movement and cry of infants based on new architectures of CNN convolutional neural networks The first part relates to the presentation of the hosting structure where the missions and departments that make up the company are described The second part mentions the state of the art in which the related works were developed and a comparative study was established The third part operates on the solutions proposed and the contributions made The fourth part is the subject of experiments and results where we conducted all our experiences for the realization of the project and finally, the last part relates to the conclusion and prospects for future work in the field Keywords : baby monitoring, object detection, region proposal, convolutional neural network, baby cry Table des matières Liste des tableaux Table des figures Liste des tables INTRODUCTION GÉNÉRALE 1.1 Présentation de l’établissement d’accueil 1.1.1 1.2 Contexte-objectifs-problématiques 1.2.1 1.2.2 1.2.3 ETAT DE L’ART 2.1 Techniques classiques 2.1.1 2.1.2 2.1.3 Techniques basées sur les réseaux de neuron 2.2.1 2.2 2.2.2 2.3 Comparaison des méthodes utilisées 2.3.1 i TABLE DES MATIÈRES 2.3.2 2.3.3 SOLUTIONS PROPOSÉES & CONTRIBUTIONS 3.1 3.2 3.3 3.4 Pourquoi les algorithmes de Tensorflow detect Pourquoi l’aspect AUDIO ne figure pas dans n Déroulement de notre travail Architecture générale de la solution 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 EXPÉRIMENTATIONS & RÉSULTATS 4.1 Problèmes rencontrés 4.1.1 4.1.2 4.1.3 4.2 Expérimentations 4.2.1 4.2.2 4.2.3 4.2.4 4.3 Résultats 4.3.1 4.3.2 4.3.3 CONCLUSION & PERSPECTIVES 5.1 5.2 ii Conclusion générale Perspectives TABLE DES MATIÈRES A Algorithmes A.1 A.2 A.3 A.4 Implémentation du modèle Faster R-CNN prepare batch generate data start train iii CHAPITRE EXPÉRIMENTATIONS & RÉSULTATS FIGURE 4.8 – Posture : Stand Nous remarquons dans les figures que les précisions sont au tops La (Fig.4.7) montre une bonne précision de 99% avec la position stand = "debout" alors que les precisions dans la (Fig.4.8 sont moyennement bon, jusqu’à 80-89% Mais l’algorithme commet des confusion quand-t’a la détection des postures Il ne sait pas exactement si c’est la position debout ou couché Cette erreur est survenue parce que la position du bébé n’est pas très claire dans l’image On peut donc supposer que malgré la confusion de l’algorithme détecter la meilleur position, sa fiable n’est pas mis en cause 40 CHAPITRE EXPÉRIMENTATIONS & RÉSULTATS FIGURE 4.9 – Posture : Sleep FIGURE 4.10 – Posture : Sleep Les positions Sleep = "couché" dans les (Fig.4.9) et (Fig.4.10) ont été bien détectées avec de très bonnes précisions Cependant, on constate encore, une confusion de l’algorithme dans la (Fig.4.10), mais cette fois-ci, la confusion n’est pas portée sur les postures mais plutôt sur la forme du corps du bébé 41 CHAPITRE EXPÉRIMENTATIONS & RÉSULTATS FIGURE 4.11 – Posture : Sit FIGURE 4.12 – Posture : Sit Dans les images ( Fig.4.11 & Fig.4.12 ), la détection a été bien faite La précision 42 CHAPITRE EXPÉRIMENTATIONS & RÉSULTATS dans ces deux cas était au rendez-vous, jusqu’à un taux de 99.99% pour cette classe (Sit = "assis") Tout laisse croire que le programme détecte mieux cette classe parrapport aux autres classes Ceci pourrait s’expliquer du fait qu’il plus d’images d’entrnements dans cette classe que les autres 43 Chapitre CONCLUSION & PERSPECTIVES 5.1 Conclusion générale Ce chapitre traitera des conclusions basées sur l’ensemble du travail et aussi des résultats du chapitre 4, ainsi que des limites du cadre et des travaux futurs pouvant être réalisés Ce travail fait partie d’un premier essai pour résoudre un problème de surveillance des bébés, nous n’avons pas suffisamment de données pour effectuer une solution très grande échelle Les ressources et tous les besoins nécessaires sont redéfinis après les expérimentations Au terme de cet effort, nous avons d’abord effectué un état de l’art plus approfondi sur les méthodes d’algorithmes de détection d’objets, des plus anciennes aux plus récentes utilisant les réseaux de neurones Ensuite, nous avons effectué une étude comparative des méthodes les plus performantes de l’état de l’art Puis, sur la base de cette étude, nous avons choisi une démarches raisonnées qui nous a semblé adéquat par-rapport ce qui existe pour résoudre notre problème Enfin, nous avons proposé une solution que nous avons implémenté afin de parvenir au résultats attendus Les résultats de ce travail seront utilisộs pour avoir un aperỗu et explorer les possibilités d’atteindre nos objectifs De plus, par rapport l’état de l’art, les résultats de nos expériences sont assez prometteurs car ils sont réalisés sur des ressources et des données limitées ; nous pouvons nous attendre avoir de meilleures performances par la suite Bien qu’une précision de test respectable de 93% ait été atteinte, l’ensemble de données collecté était trop limité et n’était pas vraiment représentatif du domaine du monde réel Il faut aussi noter que pendant ce travail, aucune validation n’a été effectuée, car il n’y a pas de jeu de données de référence en ligne avec lequel on peut tester nos algo44 CHAPITRE CONCLUSION & PERSPECTIVES rithmes et réaliser une comparaison 5.2 Perspectives Notre travail s’inscrit dans le cadre d’un projet de faisabilité afin de voir les possibilité de pouvoir l’appliquer dans le monde réel En perspective, nous prévoyons de travailler sur la création d’une base de données de référence pour les tâches liées la surveillance du bébé Bien qu’il serait difficile de collecter un ensemble de données entièrement représentatif pour entrner nos modèles, il serait donc bon d’étudier et de tester davantage les techniques d’adaptation de domaine décrites dans l’article de Csurka [17] 45 Bibliographie [1] M S K Mishra, F Jtmcoe, and K Bhagat, “A survey on human motion detection and surveillance,” International Journal of Advanced Research in Electronics and Communication Engineering (IJARECE) Volume, vol 4, 2015 [2] H S A Karaki, S A Alomari, and M H Refai, “A comprehensive survey of the vehicle motion detection and tracking methods for aerial surveillance videos,” IJCSNS, vol 19, no 1, p 93, 2019 [3] N Dastanova, S Duisenbay, O Krestinskaya, and A P James, “Bit-plane extracted moving-object detection using memristive crossbar-cam arrays for edge compu-ting image devices,” IEEE Access, vol 6, pp 18954–18966, 2018 [4] I Kartika and S S Mohamed, “Frame differencing with post-processing techniques for moving object detection in outdoor environment,” in 2011 IEEE 7th International Colloquium on Signal Processing and its Applications, pp 172–176, IEEE, 2011 [5] Y Lin, M Fang, and D Shihong, “An object reconstruction algorithm for moving vehicle detection based on three-frame differencing,” in 2015 IEEE 12th Intl Conf on Ubiquitous Intelligence and Computing and 2015 IEEE 12th Intl Conf on Au-tonomic and Trusted Computing and 2015 IEEE 15th Intl Conf on Scalable Com-puting and Communications and Its Associated Workshops (UIC-ATCScalCom), pp 1864–1868, IEEE, 2015 [6] A K Chauhan and P Krishan, “Moving object tracking using gaussian mixture model and optical flow,” International Journal of Advanced Research in Compu-ter Science and Software Engineering, vol 3, no 4, 2013 [7] A Bruhn, J Weickert, and C Schnörr, “Lucas/kanade meets horn/schunck : Com-bining local and global optic flow methods,” International journal of computer vision, vol 61, no 3, pp 211–231, 2005 [8] D Raju and P Joseph, “Motion detection and optical flow,” International Journal of Computer Science and Information Technologies, vol 5, no 4, pp 5716–5719, 2014 46 BIBLIOGRAPHIE [9] C Sukanya, R Gokul, and V Paul, “A survey on object recognition methods,” In-ternational Journal of Science, Engineering and Computer Technology, vol 6, no 1, p 48, 2016 [10] R K Rout, A survey on object detection and tracking algorithms PhD thesis, 2013 [11] M Sankari and C Meena, “Estimation of dynamic background and object detec-tion in noisy visual surveillance,” International Journal, vol 2, 2011 [12] H S Parekh, D G Thakore, and U K Jaliya, “A survey on object detection and tracking methods,” International Journal of Innovative Research in Computer and Communication Engineering, vol 2, no 2, pp 2970–2979, 2014 [13] A D Alzughaibi, H A Hakami, and Z Chaczko, “Review of human motion detection based on background subtraction techniques,” International Journal of Computer Applications, vol 122, no 13, 2015 [14] R S Rakibe and B D Patil, “Background subtraction algorithm based human mo-tion detection,” International Journal of scientific and research publications, vol 3, no 5, pp 2250–3153, 2013 [15] Y Du, W Wang, and L Wang, “Hierarchical recurrent neural network for skele-ton based action recognition,” in Proceedings of the IEEE conference on computer vision and pattern recognition, pp 1110–1118, 2015 [16] L Torrey and J Shavlik, “Transfer learning,” in Handbook of research on machine learning applications and trends : algorithms, methods, and techniques, pp 242– 264, IGI Global, 2010 [17] G Csurka, “Domain adaptation for visual applications : A comprehensive survey,” arXiv preprint arXiv :1702.05374, 2017 [18] W.-T Lee and H.-T Chen, “Histogram-based interest point detectors,” in 2009 IEEE conference on computer vision and pattern recognition, pp 1590–1596, IEEE, 2009 [19] S Ji, W Xu, M Yang, and K Yu, “3d convolutional neural networks for human ac-tion recognition,” IEEE transactions on pattern analysis and machine intelligence, vol 35, no 1, pp 221–231, 2012 [20] P Wang, W Li, P Ogunbona, J Wan, and S Escalera, “Rgb-d-based human motion recognition with deep learning : A survey,” Computer Vision and Image Unders-tanding, vol 171, pp 118–139, 2018 [21] G Johansson, “Visual perception of biological motion and a model for its analy-sis,” Perception & psychophysics, vol 14, no 2, pp 201–211, 1973 47 Annexe A Algorithmes A.1 Implémentation du modèle Faster R-CNN class R o I P o o l i n g ( Layer ) : def init ( self , size =(7 , 7) ) : self size = size super ( RoIPooling , self ) init () def build ( self , i n p u t _ s h a p e ) : self shape = i n p u t _ s h a p e super ( RoIPooling , self ) build ( i n p u t _ s h a p e ) def call ( self , inputs , ** kwargs ) : ind = K reshape ( inputs [2] ,( -1 ,) ) = K tf image c r o p _ a n d _ r e s i z e ( inputs [0] , inputs [1] , ind , self 10 11 x size ) 12 return x 13 14 def 15 c o m p u t e _ o u t p u t _ s h a p e ( self , i n p u t _ s h a p e ) : a = i n p u t _ s h a p e [1][0] b = self size [0] c = self size [1] d = i n p u t _ s h a p e [0][3] return (a ,b ,c , d ) 16 17 18 19 20 21 22 23 BATCH =256 24 25 f e a t u r e _ m a p = Input ( b a t c h _ s h a p e =( None , None , None ,1536) ) 26 rois = Input ( b a t c h _ s h a p e =( None , 27 ind = Input ( b a t c h _ s h a p e =( None , https ://github.com/dongjk/faster_rcnn_keras/blob/master/RCNN.py 48 ANNEXE A ALGORITHMES 28 29 p1 = R o I P o o l i n g () ([ feature_map , rois , ind ]) 31 flat1 = Flatten () ( p1 ) 30 32 33 34 fc1 = Dense ( units =1024 , a c t i v a t i o n = " relu " , 37 name = "fc2 " 38 ) ( flat1 ) 39 fc1 = B a t c h N o r m a l i z a t i o n () ( fc1 ) 40 o u t p u t _ d e l t a s = Dense ( 41 units =4 * 200 , 42 a c t i v a t i o n = " linear " , 43 k e r n e l _ i n i t i a l i z e r = " uniform " , 44 name = " deltas2 " 45 ) ( fc1 ) 35 36 46 47 o u t p u t _ s c o r e s = Dense ( 48 units =1 * 200 , 49 a c t i v a t i o n = " softmax " , 50 k e r n e l _ i n i t i a l i z e r = " uniform " , 51 name = " scores2 " 52 ) ( fc1 ) 53 54 55 56 57 model = Model ( inputs =[ feature_map , rois , o u t p u t _ d e l t a s ]) model summary () model compile ( o pt im iz er = ’rmsprop ’ , loss ={ ’deltas2 ’: smoothL1 , c a t e g o r i c a l _ c r o s s e n t r o p y ’}) Listing A.1 – RoI Pooling layer A.2 prepare batch FG_FRAC =.25 FG_THRESH =.5 BG_THRESH_HI =.5 BG_THRESH_LO =.1 # load # TODO p r e t r a i n e d _ m o d e l img = load_img (" / I L S V R C _ t r a i n _ 0 JPEG " ) 10 x = i m g _ t o _ a r r a y ( img ) 11 x = np e x p a n d _ d i m s (x , axis =0) 12 not_used = p r e t r a i n e d _ m o d e l predict ( x ) 13 14 r pn _m od el = l o a d _ m o d e l ( ’weights hdf5 ’, 49 an fix ANNEXE A ALGORITHMES c u s t o m _ o b j e c t s ={ ’loss_cls ’: loss_cls , ’smoothL1 ’: smoothL1 }) 16 not_used = r pn _m od el predict ( np load ( ’ n 6 _ ’) [ ’fc ’ ]) 15 17 18 23 25 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 def p r o d u c e _ b a t c h ( filepath , gt_boxes , h_w , category ) : 19 img = load_img ( filepath ) 20 i mg _w id th = np shape ( img ) [1] * scale [1] 21 i m g _ h e i g h t = np shape ( img ) [0] * scale [0] 22 img = img resize (( int ( im g_ wi dt h ) , int ( i m g _ h e i g h t ) ) ) # feed image to p r e t r a i n e d model and get feature map 24 img = i m g _ t o _ a r r a y ( img ) img = np e x p a n d _ d i m s ( img , axis =0) 26 f e a t u r e _ m a p = p r e t r a i n e d _ m o d e l predict ( img ) 27 height = np shape ( f e a t u r e _ m a p ) [1] 28 width = np shape ( f e a t u r e _ m a p ) [2] 29 n u m _ f e a t u r e _ m a p = width * height # ca l cu la te 30 w_stride 31 h_stride 32 33 # generate base anchors a cc or di ng output stride # base anchors are anchors wrt a tile (0 ,0 , w_stride -1 , h_stride 34 -1) 35 b a s e _ a n c h o r s = g e n e r a t e _ a n c h o r s ( w_stride , h_stride ) # slice tiles a cc or di ng 36 # each x1x1532 feature map is 37 shift_x 38 shift_y 39 40 shift_x , shift_y = np meshgrid ( shift_x , shift_y ) 41 shifts = np vstack (( shift_x ravel () , shift_y ravel () , shift_x ravel () , shift_y ravel () ) ) tr an sp os e () # apply base anchors to all tiles , to have a n u m _ f e a t u r e _ m a p *9 anchors a l l _ a n c h o r s = ( b a s e _ a n c h o r s reshape ((1 , , 4) ) + shifts reshape ((1 , num_feature_map , 4) ) t ns po se ((1 , , 2) ) ) t o t a l _ a n c h o r s = n u m _ f e a t u r e _ m a p *9 a l l _ a n c h o r s = a l l _ a n c h o r s reshape (( total_anchors , 4) ) # feed feature map to p r e t r a i n e d RPN %model , get proposal labels and bboxes res = rp n_ mo de l predict ( f e a t u r e _ m a p ) scores = res [0] scores = scores reshape ( -1 ,1) deltas = res [1] deltas = np reshape ( deltas ,( -1 ,4) ) # p ro po sa ls t ns fo rm to bbox values (x1 , y1 , x2 , y2) p ro po sa ls = b b o x _ t r a n s f o r m _ i n v ( all_anchors , deltas ) p ro po sa ls = c l i p _ b o x e s ( proposals , ( h_w [0] , h_w [1]) ) # remove small boxes , here t hr es ho ld is 40 pixel keep = f i l t e r _ b o x e s ( proposals , 40) p ro po sa ls = p ro po sa ls [ keep , :] scores = scores [ keep ] 50 ANNEXE A ALGORITHMES 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 # sort socres and p r e _ n m s _ t o p N =6000 order = scores ravel () argsort () [:: -1] if p r e _ n m s _ t o p N > 0: order = p ro po sa ls = scores = scores [ order ] # apply NMS p o s t _ n m s _ t o p N =300 keep = p y _ c p u _ n m s ( np hstack (( proposals , scores ) ) , 0.7) if p o s t _ n m s _ t o p N > 0: keep = keep [: p o s t _ n m s _ t o p N ] p ro po sa ls = p ro po sa ls [ keep , :] scores = scores [ keep ] # add gt_boxes to p ro po sa ls p ro po sa ls = np vstack ( ( proposals , gt_boxes ) ) # c al cu la te overlaps of proposal and gt_boxes overlaps = b b o x _ o v e r l a p s ( proposals , gt_boxes ) g t _ a s s i g n m e n t = overlaps argmax ( axis =1) m a x _ o v e r l a p s = overlaps max ( axis =1) # labels = g t_ la be ls [ g t _ a s s i g n m e n t ] #? 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 # sub sample fg_inds = np where ( m a x _ o v e r l a p s >= FG _T HR ES H ) [0] f g _ r o i s _ p e r _ t h i s _ i m a g e = ( int ( BATCH * FG_FRAC ) , fg_inds size ) # Sample f o r e g r o u n d regions without r e p l a c e m e n t if fg_inds size > 0: fg_inds = npr choice ( fg_inds , size = f g _ r o i s _ p e r _ t h i s _ i m a g e , replace = False ) bg_inds = np where (( m a x _ o v e r l a p s < B G _ T H R E S H _ H I ) & ( m a x _ o v e r l a p s >= B G _ T H R E S H _ L O ) ) [0] b g _ r o i s _ p e r _ t h i s _ i m a g e = BATCH - f g _ r o i s _ p e r _ t h i s _ i m a g e b g _ r o i s _ p e r _ t h i s _ i m a g e = ( b g _ r o i s _ p e r _ t h i s _ i m a g e , bg_inds size ) # Sample b a c k g r o u n d regions without r e p l a c e m e n t if bg_inds size > 0: bg_inds = npr choice ( bg_inds , size = b g _ r o i s _ p e r _ t h i s _ i m a g e , replace = False ) # The indices that we ’re s el ec ti ng ( both fg and bg) k ee p_ in ds = np append ( fg_inds , bg_inds ) # Select sampled values from various arrays : # labels = labels [ k ee p_ in ds ] rois = pr op os al s [ ke ep _i nd s ] gt_rois = gt_boxes [ g t _ a s s i g n m e n t [ ke ep _i nd s ]] targets = b b o x _ t r a n s f o r m ( rois , gt_rois ) # input rois rois_num = targets shape [0] b at ch _b ox = np zeros (( rois_num , for i in b at ch _b ox [i , category ] = b at ch _b ox # get gt 51 ANNEXE A ALGORITHMES batch_categories for i in range ( rois_num ) : b a t c h _ c a t e g o r i e s [i , batch_categories return rois , batch_box , 110 111 112 113 114 Listing A.2 – Preparation du batch A.3 generate data I L S V R C _ d a t a s e t _ p a t h = ’/ home /jk/ f a s t e r _ r c n n /’ img_path = I L S V R C _ d a t a s e t _ p a t h + ’Data / DET/ train /’ a nn o_ pa th = I L S V R C _ d a t a s e t _ p a t h + ’A n n o t a t i o n s / DET/ train /’ import glob from m u l t i p r o c e s s i n g import Process , Queue 16 def worker ( path ) : print ( ’worker start ’ + path ) b a t c h _ r o i s =[] 10 b a t c h _ f e a t u r e m a p _ i n d s =[] 11 b a t c h _ c a t e g o r i e s =[] 12 b a t c h _ b b o x e s =[] 13 fc_index =0 14 dataset ={} 15 # ’/ I ma ge Se ts /DET/ train_ * ’ for fname in glob glob ( I L S V R C _ d a t a s e t _ p a t h + path ) : 17 print ( fname ) 18 with open ( fname , ’r’) as f : 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 basename = os pat category = int ( base content =[] for line in f : if ’extra ’ not in content a dataset [ category ]= c print ( len ( dataset ) ) from random import randint while 1: 29 try : category = randint (1 , 200) content = dataset [ category ] n = randint (0 , len ( content ) ) line = content [ n ] , gt_boxes , h_w = p a r s e _ l a b e l ( an no _p at h + line split () [0]+ ’ if len ( gt_boxes ) ==0: continue rois , bboxes , c a t e g o r i e s = p r o d u c e _ b a t c h ( img_path + line split () [0]+ ’ JPEG ’ , gt_boxes , h_w , category ) except Ex ce pt io n : print ( ’ parse label or produce batch failed : for: ’+ line split () [0]) 52 ANNEXE A ALGORITHMES # t ce ba ck p ri nt _e xc () continue if len ( rois )

Ngày đăng: 30/10/2020, 21:18

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w