Machine learning
Xin chào các anh, chị! Em có một ảnh như vậy anh chị có thể chỉ giúp em có mô hình máy học nào khi đưa ảnh vào mô hình máy học sẽ trả về giá trị là tọa độ mỗi ô vuông nhỏ không ạ? Mô hình có thể liên kết với Qt creator. Em xin cảm ơn!
1 CÂU TRẢ LỜI
Mình chưa hiểu ý của bạn lắm. Có phải bạn muốn tìm một mô hình máy học để nhận dạng chữ số nào ở tọa độ (x, y) trên bàn cờ không
Giống như vậy đó bạn. Mình muốn mô hình máy học sẽ trả về mỗi ô vuông nhỏ là một tọa độ chính xác. Hình có 16x16 ô vuông tức là 256 ô vuông nhỏ, mô hình sẽ trả về vị trí tọa độ(x,y) của mỗi ô vuông nhỏ đó.
@mczoro về cơ bản bài toán của bạn thuộc vào loại bài toán xử lý ảnh (Computer Vision) nên bạn có thể sử dụng các thư viện để xử lý chúng. OpenCV là một thư viện rất phổ biến và phù hợp trong trường hợp này. Các bước chính như sau:
1 - Chia ảnh của bạn thành các hình vuông nhỏ tùy theo kích thước của ảnh. Ví dụ như trường hợp của bạn là 256 hình vuông nhỏ 2 - Sử dụng mô hình học máy để nhận dạng chữ in trong hình vuông nhỏ đó. Bạn có thể tham khảo cách training mô hình với từ khóa optical character recognition trên Google có khá nhiều nhưng nếu muốn có một mô hình thực sự tốt với tập dữ liệu của bạn thì mình nghĩ bạn nên thử với CNN (mạng nơ ron tích chập) để có hiệu quả tốt hơn. Một mô hình CNN khá phổ biến cho phân loại ảnh là VGG-16 mình thấy cũng khá phù hợp với bài toán của bạn.
Ngoài ra cũng có một số thư viện sẵn có bạn có thể tham khảo như Tesseract OCR cũng có thê sử dụng tốt sau một vài bươc hiệu chỉnh
@pham.van.toan Cám ơn @pham.van.toan nhiều lắm! Mình đang làm đồ án có tên "Ứng dụng dùng máy học để tự động học cách chơi và chơi trò chơi MineSweeper trên máy tính" mình có chơi game và chụp màn hình chơi game được khoảng hơn 10000 làm tập huấn luyện. Nhưng không biết sử dụng mô hình nào để huấn luyện, mình có sử dụng thử SVM nhưng SVM chỉ trả về nhãn của mỗi hình, còn game minesweeper là phải trả về tọa độ mỗi ô vuông nhỏ để có thể gởi sự kiện click chuột đến game để chơi tự động. Theo bạn hướng dẫn mình thì CNN và Tesseract OCR có thể ứng dụng vào được không? @pham.van.toan trả lời giúp mình với mình với mình cảm ơn nhiều lắm!
@mczoro Vậy mục đích của bài toán này không hẳn là nhận diện hình ảnh như mình đoán. Mà mục đích của nó đẻ dạy máy tự chơi game Minesweeper mà bản chất chính là cực đại hóa một hàm thưởng (reward) nào đó - ở đây chính là việc bạn mở được càng nhiều ô không có mìn thì càng tốt. Thông thường với các bài toán này thì phương pháp tối ưu nhất không phải là Supervised Learning (học có giám sát) như bạn đang làm mà là Reinforence Learning ( học tăng cường). Bạn có thể hiểu học tăng cường chính là để cho máy tự chơi (thay vì bạn tự chơi để lấy dữ liệu huấn luyện) rồi qua rất nhiều lần như thế máy sẽ tìm cách chơi nào tối đa hóa điểm thưởng (reward) nói trên. Lúc này bài có thể kết hợp các mô hình nổi tiếng của RL như Q-Learning để giải. Nếu có thời gian mình sẽ viết chi tiết và làm demo mẫu cho bạn bằng một bài Viblo. Nhưng có một lưu ý cho bạn rằng trò chơi này mang tính chất ngẫu nhiên của xác suất nen độ chính xác khả dĩ là khoảng 50% nếu như bạn thử với tập dữ liệu nhiều testing
@pham.van.toan Mình cảm ơn Bạn nhiều lắm! Bạn có thể giúp mình nhanh được không bạn. Vì giữa tháng 11 là mình báo cáo cho thầy rồi. Mong bạn thông cảm vì đã làm phiền bạn nhiều! Cảm ơn và hậu tạ!