Sử dụng deeplearning (Yolo) để phân loại đối tượng trong video

48 2.5K 19
Sử dụng deeplearning (Yolo) để phân loại đối tượng trong video

Đ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

Sử dụng deeplearning trong phân loại đố tượng trên video với Yolo . Giới thiệu về mô hình CNN trong Yolo . Cải tiến Yolo qua các phiên bản . Tại sao Yolo là công cụ được sử dụng nhiều nhất trong phân loại đối tượng trong video đặc biệt với video real time

 -Trường Đại Học Công Nghiệp Hà Nội Khoa Công Nghệ Thông Tin  Đồ án tốt nghiệp Đề tài: Nghiên cứu thư viện darkflow yolo ứng dụng phân loại đối tượng video Sinh viên thực : Đỗ Xuân Sơn Lớp: KHMT2-K10 Giáo viên hướng dẫn :TS.Ngô Đức Vĩnh Lời cảm ơn! Để đồ án đạt kết tốt , em nhận hỗ trợ, giúp đỡ thầy Ngơ Đức Vĩnh Với tình cảm sâu sắc, chân thành, em xin phép bày tỏ lòng biết ơn sâu sắc thầy tạo điều kiện giúp đỡ trình học tập nghiên cứu đề tài Với quan tâm, dạy dỗ, bảo tận tình chu đáo thầy, đến tơi hồn thành luận đồ án tốt nghiệp , đề tài: " Nghiên cứu thư viện darkflow yolo ứng dụng phân loại đối tượng video " Với điều kiện thời gian kinh nghiệm hạn chế sinh viên, đồ án tránh thiếu sót Em mong nhận bảo, đóng góp ý kiến thầy để tơi có điều kiện bổ sung, nâng cao ý thức mình, phục vụ tốt công tác thực tế sau Em xin chân thành cảm ơn! MỤC LỤC Lời cảm ơn! Mở Đầu 1.Lý Do Chọn Đề Tài 2.Mục Tiêu Nghiên Cứu 3.Phương Pháp Nghiên Cứu Đối tượng nghiên cứu CHƯƠNG I: MƠ TẢ SƠ BỘ VỀ BÀI TỐN PHÂN LOẠI ĐỐI TƯỢNG 1.Tổng Quan Về Lĩnh Vực Nghiên Cứu .7 Phân loại đối tượng video 2.1 Phân loại dựa theo hình dạng 2.2.Phương pháp dựa theo chuyển động Ứng Dụng Trí Tuệ Nhân Tạo Vào Nhận Dạng Và Phân Loại Đối Tượng CHƯƠNG II: TỔNG QUAN VỀ YOLO 10 1.Giới thiệu Yolo 10 2.Lịch sử phát triển .10 2.1.Yolo v1 10 2.2.YOLOv2 17 2.3.Yolo 9000 30 2.4.Yolo v3 30 3.Cấu trúc file Yolo 32 CHƯƠNG III : THỰC NGHIỆM .33 1.Cài Đặt .33 1.1.Opencv 33 1.2.CUDA 34 1.3.cuDNN 36 1.4 Mô tả cài đặt 36 2.Traning .39 2.1.Tạo dataset cho việc train lớp .39 2.2.Tool sử dụng cho training set .40 2.3.Download Pre-trained model .41 2.4.Data file .41 2.5 Thơng số cấu hình YOLOv3 .42 2.6 Siêu tham số hàng loạt YOLOv3 (Batch hyper-parameter in YOLOv3) .42 2.7 Tham số cấu hình phân khu YOLOv3 (Subdivisions configuration parameter in YOLOv3) 42 2.8 Width, Height, Channels 43 2.9.Động lượng phân rã (Momentum and Decay) 43 2.10 Tỷ lệ học tập, bước, quy mô, ghi (Learning Rate, Steps, Scales, Burn In) .43 2.11 Tăng Liệu (Data augmentation) 44 2.12 Số lần lặp lại (Number of iterations) .44 2.13.Training YOLOv3 44 2.14.Khi nên dừng lại việc training 46 3.Detection and classification cho video 46 4.Kết .46 5.Kết luận 47 Mở Đầu 1.Lý Do Chọn Đề Tài Xã hội ngày phát triển cơng nghệ ngày phát triển theo từ cách mạng công nghiệp đến cách mạng công ngiệp 4.0 Là cách mạng mà cốt lõi công nghệ thông tin với thiết bị thông minh robot hay xe tự lái để tăng suất lao động phục vụ cho nhu cầu đời sống người vấn đề gặp phải chung thiết bị chúng ngây ngơ so để chúng có trở nên thực thơng minh người phải dạy cho chúng hiểu phân vật thực tế nhằm đưa tốn xử lý xác nhằm đạt mục đích cơng việc từ phát triển nên nhiều chương trình nhằm giúp máy tính nhận diện đối tượng đời thực Với sở sử dụng opencv cài đặt thêm thư viện YoLo môi trường Python ứng dụng giúp nhận diện đối tượng video nhằm mục đích giải vấn đề 2.Mục Tiêu Nghiên Cứu Tìm hiểu ứng dụng Yolo nhận dạng phân loại đối tượng đời thực 3.Phương Pháp Nghiên Cứu Cài đặt môi trường Yolo ,Opencv, darkNet darkflow Python Áp dụng mơ hình có sẵn để nhận dạng với đối tượng tượng video Đánh giá mức độ xác mơ hình Đối tượng nghiên cứu Open CV ,YoLo môi trường Python CHƯƠNG I: MÔ TẢ SƠ BỘ VỀ BÀI TOÁN PHÂN LOẠI ĐỐI TƯỢNG 1.Tổng Quan Về Lĩnh Vực Nghiên Cứu Xử lý ảnh lĩnh vực mang tính khoa học cơng nghệ Nó ngành khoa học mẻ so với nhiều ngành khoa học khác tốc độ phát triển nhanh, kích thích trung tâm nghiên cứu, ứng dụng, đặc biệt máy tính chun dụng riêng cho Xử lý ảnh đưa vào giảng dạy bậc đại học nước ta khoảng chục năm Nó môn học liên quan đến nhiều lĩnh vực cần nhiều kiến thức sở khác Đầu tiên phải kể đến Xử lý tín hiệu số mơn học cho xử lý tín hiệu chung, khái niệm tích chập, biến đổi Fourier, biến đổi Laplace, lọc hữu hạn… Thứ hai, cơng cụ tốn Đại số tuyến tính, Sác xuất, thống kê Một số kiến thứ cần thiết trí tuệ nhân tao, Mạng nơ ron nhân tạo đề cập q trình phân tích nhận dạng ảnh Ứng dụng cơng nghệ trí tuệ nhân tạo cụ thể mạng noron để phát phân loại đối tượng video Phân loại đối tượng video Phân loại đối tượng trình phân lớp đối tượng chuyển động thuộc lớp vật (người, phương tiện…) Các vùng chuyển động phát (trong bước phát đối tượng chuyển động) video tương ứng với đối tượng khác người hành, xe cộ, … Nhận biết kiểu (loại) đối tượng phát để theo dõi tin cậy phân tích hành động cách xác quan trọng Có cách tiếp cận phổ biến: _ Phương pháp dựa hình dạng(shape) _ Phương pháp dựa chuyển động (motion) Các phương pháp dựa hình dạng sử dụng thơng tin khơng gian hai chiều đối tượng, phương pháp dựa chuyển động sử dụng đặc trưng thuộc thời gian theo dõi đối tượng cho giải pháp phân loại 2.1 Phân loại dựa theo hình dạng Các đặc trưng chung sử dụng phân chia đối tượng theo hình dạng tạo hình chữ nhật bao quanh, tạo vùng, hình chiếu độ nghiêng vùng chứa đối tượng phát Hướng tiếp cận sử dụng độ dài đường nét hình chiếu vùng thông tin để phân loại đối tượng phát Phương pháp phụ thuộc vào giả định, chẳng hạn như, người nhỏ xe cộ có bóng phức tạp Mức độ rải rác (dispersedness) dùng ma trận phân loại định nghĩa giới hạn vùng đối tượng độ dài đường viền (chu vi) sau: Phương pháp phân loại phát triển Collins sử dụng cách nhìn dựa theo đặc trưng thị giác để huấn luyện mạng nơ ron đối tượng phân loại thừa nhận lớp Đầu vào mạng nơ ron mức độ rải rác, miền, tỉ lệ tương quan vùng đối tượng độ phóng đại camera Cũng phương pháp trước, việc phân loại thực frame kết đưa vào biểu đồ để trì phân loại theo thời gian 2.2.Phương pháp dựa theo chuyển động Một số phương pháp số viết sử dụng đặc trưng chuyển động theo thời gian đối tượng để thừa nhận lớp chúng Một cách tổng quát, chúng dùng để phân biệt đối tượng cứng (như xe cộ) không cứng (như người) Phương pháp dựa sở tính chất đặc biệt theo thời gian đối tượng chuyển động Với đối tượng đưa chu kỳ chuyển động, đặc tính đo hiển thị chu kỳ chuyển động Phương pháp khai thác đầu mối để phân loại đối tượng chuyển động sử dụng chu kỳ Phân tích luồng quang học (optical flow) hữu ích để phân biệt đối tượng “cứng” đối tượng “mềm” A.J Lipton trình bày phương pháp sử dụng phân tích optical flow cục vùng đối tượng phát Nó mong đợi cho đối tượng mềm người đưa giá trị flow trung bình, đối tượng cứng xe cộ đưa giá trị flow nhỏ Cũng vậy, phần lại chuyển động phát sinh người có chu kỳ Bằng cách sử dụng gợi ý này, chuyển động người người phân biệt với đối tượng khác xe cộ Ứng Dụng Trí Tuệ Nhân Tạo Vào Nhận Dạng Và Phân Loại Đối Tượng Ứng dụng cơng nghệ mạng noron trí tuệ nhân tạo để nhận dạng phân loại đối tương Có detectors dò đối tượng mà ta thường gặp hỗ trợ opencv : +R-CNN biến thể chúng, bao gồm R-CNN, Fast R-CNN F-RN nhanh +Phát bắn lần (SSD) +Yolo R-CNN detectors tìm đối tượng dựa học tập sâu ví dụ detectors hai giai đoạn _R-CNN đầu tiên, phân cấp tính phong phú để phát đối tượng xác phân đoạn ngữ nghĩa, (2013) Girshick et al đề xuất trình phát đối tượng u cầu thuật tốn Tìm kiếm chọn lọc (hoặc tương đương) để đề xuất hộp giới hạn ứng viên chứa đối tượng _Các vùng sau chuyển vào CNN để phân loại, cuối dẫn đến detectors tìm đối tượng dựa học tập sâu Vấn đề với phương pháp R-CNN tiêu chuẩn chậm máy phát đối tượng đầu cuối hoàn chỉnh Girshick et al xuất báo thứ hai vào năm 2015, có tựa đề Fast R- CNN Thuật toán R-CNN nhanh tạo cải tiến đáng kể cho R-CNN ban đầu, cụ thể tăng độ xác giảm thời gian cần thiết để thực chuyển tiếp; nhiên, mơ hình dựa vào thuật tốn đề xuất khu vực bên Mãi báo năm 2015 Girshick cộng sự, Faster R-CNN: Hướng tới phát đối tượng theo thời gian thực với Mạng đề xuất khu vực, R-CNN trở thành trình phát đối tượng học sâu thực từ đầu đến cuối loại bỏ yêu cầu Tìm kiếm có chọn lọc thay vào dựa vào Mạng đề xuất khu vực (RPN) (1) tích chập hồn tồn (2) dự đốn hộp giới hạn đối tượng điểm số đối tượng xác định (nghĩa điểm số định lượng khả khu vực hình ảnh chứa hình ảnh) Đầu RPN sau chuyển vào thành phần RCNN để phân loại ghi nhãn cuối Mặc dù R-CNN có xu hướng xác, vấn đề lớn với gia đình mạng R-CNN tốc độ chúng - chúng chậm, đạt FPS GPU Để giúp tăng tốc độ máy dò tìm đối tượng dựa học tập sâu, detectors lần bắn (SSD) YOLO sử dụng chiến lược phát giai đoạn SSD có thời gian thực ngắn cho kết Yolo vừa đảm bảo tốc độ xử lý vừa đảm bảo độ xác vừa đủ để xử dụng với ứng dụng thực tế CHƯƠNG II: TỔNG QUAN VỀ YOLO 1.Giới thiệu Yolo YOLO viết tắt You Only Look Once Đó mơ hình phát đối tượng sử dụng tính học mạng neural network chập sâu để phát đối tượng Thư viện sử dụng để hỗ trợ tính tốn cho Yolo tận dụng phần cứng GPU Darkflow tảng Windown Darknet giành cho Linux 2.Lịch sử phát triển Yolo trải qua phiên đến phiên là Yolo v3 từ năm 2015-2018 2.1.Yolo v1 Ô lưới (Grid cell) Cắt ảnh gốc YOLO chia hình ảnh đầu vào thành lưới S × S Mỗi lưới dự đốn đối tượng Ví dụ, lưới màu vàng bên cố gắng dự đốn đối tượng người người có trung tâm (dấu chấm màu xanh) nằm ô lưới Mỗi lưới dự đốn số hộp cố định Trong ví dụ này, lưới màu vàng đưa hai dự đoán hộp ranh giới (hộp màu xanh) để xác định vị trí người 10 CHƯƠNG III : THỰC NGHIỆM 1.Cài Đặt 1.1.Opencv OpenCV thư viện mã nguồn mở hàng đầu cho thị giác máy tính xử lý ảnh máy học, tính tăng tốc GPU hoạt động thời gian thực OpenCV phát hành theo giấy phép BSD, hồn tồn miễn phí cho học thuật thương mại Nó có interface C++, C, Python, Java hỗ trợ Windows, Linux, Mac OS, iOS Android OpenCV thiết kế để tính tốn hiệu với tập trung nhiều vào ứng dụng thời gian thực Được viết tối ưu hóa C/C++, thư viện tận dụng lợi xử lý đa lõi Được sử dụng khắp giới, OpenCV có cộng đồng 47 nghìn người dùng số lượng download vượt triệu lần Phạm vi sử dụng từ nghệ thuật tương tác, lĩnh vực khai thác mỏ, đồ web công nghệ robot Các ứng dụng Opencv  Hình ảnh street view  Kiểm tra giám sát tự động  Robot xe tự lái  Phân tích hình ảnh y tế  Tìm kiếm phục hồi hình ảnh/video  Phim - cấu trúc 3D từ chuyển động  Nghệ thuật đặt tương tác Chức Opencv  Image/video I/O, xử lý, hiển thị (core, imgproc, highgui)  Phát vật thể (objdetect, features2d, nonfree)  Geometry-based monocular or stereo computer vision (calib3d, stitching, videostab)  Computational photography (photo, video, superres)  Machine learning & clustering (ml, flann)  CUDA acceleration (gpu) 34 1.2.CUDA CUDA từ viết tắt tiếng Anh thuật ngữ Compute Unified Device Architecture, tạm dịch kiến trúc thiết bị hợp cho tính tốn CUDA bắt đầu sống từ tháng Bảy năm 2007 với vai trò ban đầu cơng cụ phát triển phần mềm dựa ngơn ngữ lập trình C, năm 2010, sau hai năm rưỡi phát triển, CUDA tiến hóa thành kiến trúc điện tốn GPU, hay gọi GPGPU, NVIDIA CUDA có mặt hầu hết GPU đời NVIDIA, từ dòng GeForce giành cho giải trí, đến Quadro giành cho điện tốn hình ảnh chun nghiệp, dòng Tesla cho tính tốn hiệu cao GPU NVIDIA trang bị kiến trúc tính tốn song song CUDA, bao gồm trình điều khiển thiết bị CUDA vốn nhúng bên trình điều khiển thiết bị đồ họa NVIDIA cung cấp Trình điều khiển thiết bị CUDA giữ nhiệm vụ chuyển đổi mã PTX (viết tắt thuật ngữ Parallel Thread Execution, tạm dịch mã thực thi tiểu trình song song) sinh trình biên dịch ngơn ngữ lập trình – ví dụ C/C++, Fortran, Java, Python, v.v… – sang dạng mã máy thật GPU dùng để thực thi ứng dụng Nhờ cách tiếp cận thống cho ngôn ngữ lập trình mà nhà phát triển phần mềm cần sử dụng ngơn ngữ lập trình quen thuộc với để tạo ứng dụng chạy GPU Lớp thứ hai kể từ lên hình cho thấy số ngơn ngữ lập trình C/C++, Fortran, Java, Python, … giao diện lập trình OpenCL, Direct Compute, NET, … mà lập trình viên dùng để tạo sóng phần mềm tuyệt vời Để có nhìn chi tiết hơn, tập trung điện tốn GPU từ góc nhìn mơi trường phát triển ứng dụng phần mềm, quan sát hình (3) Một lần nữa, lớp thấp có kiến trúc CUDA Ngay phía môi trường phát triển phần mềm thiết phải có, bao gồm ngơn ngữ lập trình, giao diện ứng dụng lập trình thiết bị, trình biên dịch, gỡ rối, đo đạc hiệu năng, v.v… Với môi trường này, từ quan điểm nhà phát triển phần mềm thơng thường, nhiều khó khăn việc nhanh chóng tạo ứng dụng hữu ích, lớp có lớp thư viện tảng, với đoạn mã chương trình bản, hữu dụng, phổ biến, dùng lại phần mềm riêng nhà phát triển Dựa lớp thư viện này, NVIDIA nhiều đối tác tiếp tục cung cấp cho cộng đồng phát triển phần mềm vơ số middleware, module, plug-in, ví dụ engine tăng tốc ứng dụng lý thú gọi AXE cho mơi trường điện tốn hình ảnh chun nghiệp Vai Trò quan trọng _Trong cơng nghiệp game: CUDA lĩnh vực là: Đây công cụ đầy sức mạnh engine AXE, mà nói đến trên, giành riêng cho vật lý game, hay nói cách khác, thiết kế để xử lý di chuyển phát sinh động (sinh khơng tính trước tùy theo cách người chơi) tương tác đối tượng cảnh game Vật lý game khiến cho tính đồ họa trò chơi trở nên sống động, chuyện hiển thị cảnh 35 phim với thời gian thực game trở thành thực với hỗ trợ PhysX APEX _Cho ứng dụng video số: CUDA có nhiều ứng dụng việc sửvideo chẳng hạn cải tiến chất lượng hình ảnh video với phần mềm vReveal MotionDSP, mở rộng độ phân giải DVD với SimHD ArcSoft, biên tập video nhanh chóng đơn giản với SuperLoiloScope ‘Mars’ Loilo, chuyển đổi định dạng video nhanh chóng với chất lượng cao công cụ Badaboom Elemental Technologies tạo ra, v.v… Nhờ vào CUDA GPU thực theo thời gian thực đến khoảng lần nhanh so với CPU Với CUDA, CPU giảm tải nhờ GPU, có 31% công suất CPU sử dụng, đồng thời ứng dụng chạy mức full frame rate Trong trường hợp không dùng CUDA, CPU bị tận dụng 100% giá trị frame rate quan sát chậm Trong thời gian gần đây, phát triển thiết bị di động có khả thu liệu hình ảnh/video với chất lượng cao khiến người thoải mái việc thưởng thức âm nhạc, phim, hình chụp cá nhân nơi lúc Tuy nhiên, phong cách giải trí sống hàng ngày khơng thể có bạn khơng có nỗ lực riêng Chẳng hạn bạn phải tốn nhiều thời gian để chuyển đổi nhạc/phim có máy PC sang iPod Touch yêu quý ngược lại Và trình chuyển đổi hồn tồn khơng đơn giản, bạn người sử dụng máy tính bình thường Trong trường hợp đó, phần mềm Badaboom Elemental Technologies giúp bạn nhiều Đó chuyển đổi media nhanh thiết kế giới để chạy tối ưu với GPU CUDA NVIDIA Khi so sánh chuyển định dạng iTunes, phần mềm phổ dụng nhất, nhanh đến 20 lần, tối thiểu nhanh đến lần sử dụng CPU nhanh đắt tiền Core i7 Intel 1.3.cuDNN Cũng tạo Nvidia, cuDNN thư viện Nvidia CUDA Deep Neural Network thư viện tăng tốc GPU chuyên dành cho Deep Neural Network cuDNN cung cấp triển khai điều chỉnh cao cho thói quen tiêu chuẩn tích chập tiến lùi, gộp chung, chuẩn hóa lớp kích hoạt Các nhà nghiên cứu sâu nhà phát triển khung toàn giới dựa vào cuDNN để tăng tốc GPU hiệu suất cao Nó cho phép họ tập trung vào việc đào tạo neuron Network phát triển ứng dụng phần mềm thay dành thời gian cho việc điều chỉnh hiệu suất GPU cấp thấp cuDNN tăng tốc khung deep learning sử dụng rộng rãi, bao gồm Caffe, Caffe2, Chainer, Keras, MATLAB, MxNet, TensorFlow PyTorch Để truy cập vào chứa khung học sâu tối ưu hóa NVIDIA, có tích hợp cuDNN vào khung, truy cập NVIDIA GPU CLOUD 36 Trong nghiên cứu này, cuDNN kết hợp CUDA để đào tạo mạng lưới thần kinh để tính tốn weights 1.4 Mơ tả cài đặt Chúng ta cài đặt cuDNN, CUDA, Opencv mô trường linux window Với môi trường ta window ta phải cài đặt darkflow với linux darknet Việc cài đặt môi trường cho Yolo phức tạp tốn nhiều thời gian phụ thuộc cấu hình máy nhiều độ tương thích gói cài đặt phần cứng máy tính Để tiết kiệm thời gian cài đặt để trình traning nhanh sử dụng cấu hình tối đa Yolo nên sử dụng Google Colab GOOGLE COLAB Là máy ảo google với cách thức hoạt động giống với Jupyter notebook hỗ trợ Ram l2GB, Disk 312GB, GPU Tesla K80 mạnh mẽ thời điểm để sử dụng cho traning Hơn colab máy ảo đa mơi trường cài đặt DarkNet Darkflow Cài đặt DarkNet google colab Tải file DarkNet cho google colab Chọn đến đường dẫn Darknet download File sau tải colab lưu file colab 37 Cài đặt CuDa cho colab Cài đặt môi trường 38 Cài đặt Darkflow google colab 39 2.Traning 2.1.Tạo dataset cho việc train lớp mới Một huấn luyện cho YOLO bao gồm loạt hình ảnh, hình ảnh phải kèm với tệp văn tọa độ lớp đối tượng có hình ảnh (tơi thêm vào chí khun nên thêm số hình ảnh với khơng có đối tượng cả) Darknet sử dụng tệp văn đơn giản, với định dạng sau: [số danh mục] [trung tâm đối tượng X] [trung tâm đối tượng Y] [chiều rộng đối tượng X] [chiều rộng đối tượng Y] Darkflow sử dụng thích định dạng liệu PASCAL VOC, thích ImageNet sử dụng Là tệp xml ví dụ sau: map_text/images _ATRP_0001_003_001.JPEG 608 608 3 0 map_text center 1 0 6 318 97 409 40 object instances > 2.2.Tool sử dụng cho training set Có số cơng cụ sử dụng để tạo thích cho số hình ảnh phần tập huấn luyện Để cách thủ công hộp giới hạn vùng có chứa đối tượng ảnh cho biết đối tượng thuộc lớp Hình ảnh minh họa Cơng cụ + Yolo Mark (https://github.com/AlexeyAB/Yolo_mark) Được tạo người đằng sau ngã ba Windows Lưu thích theo định dạng mà Darknet + LabelImg (https://github.com/tzutalin/labelImg) Lưu thích định dạng PASCAL VOC, thích sử dụng Darkflow + BBox-Label-Tool (https://github.com/puzzledqs/BBox-Label-Tool):Cho phép thích ta chưa biết nên sử dụng cho Darkflow hay Darknet.Nhưng lại không cho phép nhiều lớp ảnh.Ngoài chưa biết gán nhãn cho Darknet hay Darkflow nên cần hàm chuyển đổi sang định dạng cưa DarkNet Darkflow 41 2.3.Download Pre-trained model Khi bạn huấn luyện trình phát đối tượng riêng mình, bạn nên tận dụng mơ hình có đào tạo liệu lớn tập liệu lớn khơng chứa đối tượng bạn cố gắng phát Quá trình gọi học chuyển (transfer learning) Thay học từ đầu, ta sử dụng mơ hình đào tạo trước có chứa trọng số chập đào tạo ImageNet Sử dụng trọng số làm trọng lượng ban đầu (weight), mạng học nhanh cd ~/darknet wget https://pjreddie.com/media/files/darknet53.conv.74 ~/darknet/darknet53.conv.74 -O 2.4.Data file Trong tệp darknet.data (có phân phối mã), cần cung cấp thông tin thông số kỹ thuật cho trình phát đối tượng số đường dẫn có liên quan classes = train = /path/to/snowman/snowman_train.txt valid = /path/to/snowman/snowman_test.txt names = /path/to/snowman/classes.names backup = /path/to/snowman/weights/ Tham số lớp cần số lượng lớp Trong trường hợp Yolo, Bạn cần cung cấp đường dẫn tuyệt đối tệp snowman_train.txt snowman_test.txt tạo trước đó, có danh sách tệp sử dụng để đào tạo (tham số đào tạo) xác thực (tham số hợp lệ) tương ứng Trường tên đại diện cho đường dẫn tệp chứa tên tất lớp Yolo bao gồm tệp class.names có chứa tên lớp Ta cần cung cấp đường dẫn tuyệt đối máy Cuối cùng, tham số lưu, cần đưa đường dẫn đến thư mục có nơi lưu trữ tệp trọng lượng trung gian (intermediate weights files) trình đào tạo tiến triển 2.5 Thơng số cấu hình YOLOv3 Cùng với tệp darknet.data class.names, YOLOv3 cần tệp cấu hình darknetyolov3.cfg Nó bao gồm sở mã dựa tệp cấu hình demo, yolov3voc.cfg (đi kèm với mã darknet), sử dụng để huấn luyện liệu VOC Tất tham số đào tạo quan trọng lưu trữ tập tin cấu hình Hãy cho Yolo hiểu ý nghĩa chúng giá trị để đặt chúng 2.6 Siêu tham số hàng loạt YOLOv3 (Batch hyper-parameter in YOLOv3) Batch (lô) and subdivision parameter (phân khu) [net] # Testing 42 # batch=1 # subdivisions=1 # Training batch=64 subdivisions=16 Tham số lơ cho biết kích thước lơ sử dụng trình đào tạo (training) Quá trình đào tạo liên quan đến việc cập nhật lặp lặp lại trọng số (weight) mạng noron dựa số lần mắc lỗi tập liệu huấn luyện Việc sử dụng tất hình ảnh tập huấn luyện lúc để cập nhật trọng số khơng thực tế (và khơng cần thiết) Vì vậy, tập hợp nhỏ hình ảnh sử dụng lần lặp tập hợp gọi kích thước lơ Khi kích thước lơ đặt thành 64, có nghĩa 64 hình ảnh sử dụng lần lặp để cập nhật tham số mạng noron 2.7 Tham số cấu hình phân khu YOLOv3 (Subdivisions configuration parameter in YOLOv3) Mặc dù muốn sử dụng kích thước lơ 64 để đào tạo mạng noron khơng có GPU có đủ nhớ để sử dụng kích thước lơ 64 Nhưng Darknet cho phép bạn định biến gọi phân chia cho phép bạn xử lý phần kích thước lơ lúc GPU bạn Chúng ta bắt đầu đào tạo với phân mục = bạn gặp lỗi Hết nhớ, tăng tham số phân chia theo bội số (ví dụ: 2, 4, 8, 16) việc đào tạo tiến hành thành công GPU xử lý số lượng hình ảnh lúc nào, tồn lơ lặp lại hoàn thành sau tất 64 hình ảnh (như đặt trên) xử lý Trong q trình thử nghiệm, lơ phân khu đặt thành 2.8 Width, Height, Channels Các tham số cấu hình xác định kích thước hình ảnh đầu vào số lượng kênh width=416 height=416 channels=3 Các hình ảnh đào tạo đầu vào thay đổi kích thước thành chiều rộng x chiều cao trước đào tạo Chúng ta nên sử dụng giá trị mặc định 416 × 416 Kết cải thiện Yolo tăng lên 608 × 608, nhiều thời gian để đào tạo kênh = Yolo xử lý hình ảnh đầu vào RGB kênh 2.9.Động lượng phân rã (Momentum and Decay) Tệp cấu hình chứa vài tham số kiểm sốt trọng lượng cập nhật momentum=0.9 43 decay=0.0005 Các trọng số mạng noron cập nhật dựa lơ hình ảnh nhỏ khơng phải tồn tập liệu Vì lý này, cập nhật trọng lượng dao động nhiều Đó lý động lượng tham số sử dụng để xử lý thay đổi trọng lượng số lớn lần lặp Một mạng noron điển hình có hàng triệu trọng số (weight) chúng dễ dàng vượt qua liệu đào tạo Quá mức đơn giản có nghĩa làm tốt liệu đào tạo liệu thử nghiệm Nó gần giống mạng noron ghi nhớ câu trả lời cho tất hình ảnh tập huấn luyện, thực khơng học khái niệm Một cách để giảm thiểu vấn đề xử lý giá trị lớn trọng lượng Phân rã tham số kiểm soát thời hạn phạt Giá trị mặc định hoạt động tốt, bạn muốn điều chỉnh giá trị bạn nhận thấy nhiều 2.10 Tỷ lệ học tập, bước, quy mô, ghi (Learning Rate, Steps, Scales, Burn In) learning_rate=0.001 policy=steps steps=3800 scales=.1 burn_in=400 Tốc độ học thơng số kiểm sốt mức độ tích cực mà nên học dựa lô liệu Thông thường, số khoảng từ 0,01 đến 0,0001 Khi bắt đầu q trình đào tạo, ta bắt đầu với thơng tin khơng tỷ lệ học tập cần phải cao Nhưng mạng noron nhìn thấy nhiều liệu, trọng số cần thay đổi mạnh mẽ Nói cách khác, tốc độ học tập cần phải giảm theo thời gian Trong tệp cấu hình, việc giảm tốc độ học tập thực cách xác định sách giảm tốc độ học tập Yolo bước Trong ví dụ trên, tốc độ học tập 0,001 không đổi 3800 lần lặp, sau nhân với tỷ lệ để có tỷ lệ học tập Yolo định nhiều bước quy mô Trong đoạn trước, Yolo đề cập tỷ lệ học tập cần phải cao từ đầu thấp sau Mặc dù tuyên bố phần lớn đúng, theo kinh nghiệm thấy tốc độ đào tạo có xu hướng tăng có tỷ lệ học tập thấp khoảng thời gian ngắn từ đầu Điều kiểm soát tham số burn_in Đôi giai đoạn burn-in gọi giai đoạn khởi động 44 2.11 Tăng Liệu (Data augmentation) Dữ liệu ảnh dùng cho training nên từ 1000 ảnh trở lên để tăng độ xác mơ hình Để tăng độ xác mơ hình mà khơng phải q nhiều thời gian vào việc sưu tập liệu áp dụng phương pháp xử lý ảnh : xoay , lật , tạo noise, Để tăng tính đa dạng data set tránh việc liệu đẹp 2.12 Số lần lặp lại (Number of iterations) cần xác định quy trình đào tạo nên chạy lần max_batches=5200 Đối với trình phát đối tượng đa lớp, số max_batches cao hơn, tức cần chạy với số lượng lô nhiều (ví dụ: yolov3-voc.cfg) Đối với trình phát đối tượng lớp n, nên chạy đào tạo 2000 * n lơ Trong trường hợp Yolo có lớp, 5200 dường số an toàn cho max_batch 2.13.Training YOLOv3 Chuyển đến thư mục darknet khởi động lệnh sau: cd ~/darknet /darknet detector train /path/to/object(tên file )/darknet.data /path/to/snowman/darknet-yolov3.cfg /darknet53.conv.74 > /path/to/snowman/train.log Đảm bảo đường dẫn xác cho tệp darknet.data darknet-yolov3.cfg hệ thống Nhật ký đào tạo vào tệp có tên train.log thư mục tập liệu tiến hành trình đào tạo diễn Một cách hữu ích để theo dõi tổn thất đào tạo sử dụng lệnh grep tệp train.log grep "avg" /path/to/snowman/train.log Ta thấy số lơ, đợt tại, tổn thất trung bình đợt tại, tốc độ học tại, thời gian thực cho lô hình ảnh sử dụng đợt Có thể thấy bên số lượng hình ảnh sử dụng đợt tăng thêm 64 Đó đặt kích thước lơ thành 64 45 file yolo-obj_last.weights lưu cho file yolo-obj_xxxx.weights lưu cho 1000 lần lặp 100 lần lặp để vơ hiệu hóa Cửa sổ liệu, sử dụng liệu đào tạo máy dò darknet.exe / obj.data yolo-obj.cfg darknet53.conv.74 -dont_show, bạn đào tạo máy tính mà khơng cần đám mây Amazon EC2 cho việc training mAP (trung bình trung ) calculation for each Epochs (set valid=valid.txt or train.txt in obj.data file) and run: darknet.exe detector train data/obj.data yolo-obj.cfg darknet53.conv.74 –map sau training hoàn thành - get result yolo-obj_final.weights Sau 100 lần lặp dừng lại sau bắt đầu đào tạo từ thời điểm Ví dụ: sau 2000 lần lặp, bạn dừng đào tạo sau bắt đầu đào tạo cách sử dụng: darknet.exe dò tìm liệu / obj.data yolo-obj.cfg lưu \ yolo-obj_2000.weights kho lưu trữ ban đầu https://github.com/pjreddie/darknet, tập tin trọng số lưu lần sau 10 000 lần lặp (số lần lặp> 1000) Ngồi nhận kết sớm tất 45000 lần lặp 2.14.Khi nên dừng lại việc training Khi training tệp nhật ký chứa tổn thất đợt Ta lập luận để ngừng đào tạo sau mát đạt đến số ngưỡng python3 plotTrainLoss.py /full/path/to/train.log VD: 46 Nhưng kiểm tra thực tế thấy mAP sử dụng trọng số học Mã darknet ban đầu khơng có mã để tính mAP Yolo làm việc để cung cấp mã để tính tốn mAP trực tiếp mã darknet để bạn theo dõi độ xác thu hồi với mAP tệp trọng số lưu có 5200 lần lặp tệp cấu hình Vì vậy, bạn chạy cuối Tệp trọng lượng đào tạo cuối Yolo, darknet-yolov3_final.weights có độ xác trung bình (mAP) trung bình 70,37 3.Detection and classification cho video Sau training xong ta file yolo.weight,coco.name với sử dụng cho trình Predict video với file weight mơ hình sau training xong dùng để detect object file coco.name chứa tên class để classification object 4.Kết 47 5.Kết luận Kết video Yolo nhận dạng phân loại tương đối xác đầy đủ với đối tượngvideo Tuy nhiên bị nhầm lẫn đối tượng gần giống xe máy xe đạp bị che đối tượng khác Do Yolo sử dụng mạng tích chập nên máy tính khơng có GPU GPU yếu lâu để hồn thành q trình nhận dạng phân loại đối tượng Yolo sử dụng máy tính cá nhân Video kết dài 1phút sử dụng máy tính cá nhân em gần 40 phút để Yolo xử lý 48

Ngày đăng: 21/04/2019, 23:41

Từ khóa liên quan

Mục lục

  • Lời cảm ơn!

  • Mở Đầu

    • 1.Lý Do Chọn Đề Tài

    • 2.Mục Tiêu Nghiên Cứu

    • 3.Phương Pháp Nghiên Cứu

    • 4. Đối tượng nghiên cứu

    • CHƯƠNG I: MÔ TẢ SƠ BỘ VỀ BÀI TOÁN PHÂN LOẠI ĐỐI TƯỢNG

      • 1.Tổng Quan Về Lĩnh Vực Nghiên Cứu

      • 2. Phân loại đối tượng trong video

        • 2.1. Phân loại dựa theo hình dạng

        • 2.2.Phương pháp dựa theo chuyển động

        • 3. Ứng Dụng Trí Tuệ Nhân Tạo Vào Nhận Dạng Và Phân Loại Đối Tượng

        • CHƯƠNG II: TỔNG QUAN VỀ YOLO

          • 1.Giới thiệu về Yolo

          • 2.Lịch sử phát triển

            • 2.1.Yolo v1

            • 2.2.YOLOv2

            • 2.3.Yolo 9000

            • 2.4.Yolo v3

            • 3.Cấu trúc file của Yolo

            • CHƯƠNG III : THỰC NGHIỆM

              • 1.Cài Đặt

                • 1.1.Opencv

                • 1.2.CUDA

                • 1.3.cuDNN

                • 1.4. Mô tả cài đặt

                • 2.Traning

                  • 2.1.Tạo dataset cho việc train lớp mới

Tài liệu cùng người dùng

Tài liệu liên quan