Bỏ qua tới nội dung chính
Quay lại tin tức

Jigsaw Jeeves: Xây dựng Trợ lý Câu đố bằng Thị giác Máy tính

Towards Data Science· Chinmay Kakatkar· 19/8/2026general

Tổng quan về khái niệm và hướng dẫn cách tiếp cận giải pháp trong Python Bài đăng Jigsaw Jeeves: Xây dựng Trợ lý Câu đố bằng Thị giác Máy tính xuất hiện đầu tiên trên Hướng tới Khoa học Dữ liệu.

Thị giác máy tính Jigsaw Jeeves: Xây dựng Trợ lý Câu đố bằng Thị giác Máy tính Tổng quan về khái niệm và hướng dẫn cách tiếp cận giải pháp trong Python Chinmay Kakatkar Ngày 19 tháng 8 năm 2026 đọc 25 phút Chia sẻ Hình ảnh được cung cấp bởi Alexa từ Pixabay Hãy tưởng tượng thế này: bạn đang ở nhà vào một chiều Chủ nhật yên tĩnh, với một bức tranh ghép hình gồm 5.000 mảnh về vùng nông thôn nước Anh trải khắp sàn phòng khách. Những ngọn đồi nhấp nhô, những hàng rào, bầu trời u ám xám xịt hòa vào đường chân trời. Sau một thời gian dài, việc biên giới đã hoàn thành. Bây giờ bạn đang nhìn chằm chằm vào một đống khoảng 4.800 mảnh, hầu hết trong số chúng có màu xanh lục hoặc xám, và mọi mảnh bạn thử hóa ra đều là sai. Bộ não có thể nhận ra khuôn mặt của một người bạn cách xa 50 feet hoàn toàn bị cản trở bởi 37 sắc thái cỏ gần như giống hệt nhau. Tại một thời điểm nào đó, bạn bắt đầu nghi ngờ về quá trình của mình, sau đó là thị lực, sau đó là những lựa chọn trong cuộc sống của bạn - và nghiêm túc xem xét việc loại bỏ mọi thứ khỏi bàn, loại bỏ hoàn toàn các trò chơi ghép hình. Bản thân câu đố không phải là vấn đề. Sau cùng, bạn ngồi xuống giải câu đố vì bạn thích thử thách trí tuệ. Sự thất vọng dâng lên vào thời điểm câu đố chuyển từ một thứ đầy thử thách thú vị thành một thứ có vẻ khó giải quyết và tiến độ bị đình trệ. Đó là lúc một cú huých đúng hướng có thể mang lại niềm vui. Nếu bạn đang giải quyết với một người có kinh nghiệm hơn, họ có thể thúc đẩy bạn bằng cách chỉ cho bạn một cụm đầy hứa hẹn, cho bạn biết những mảnh nào có chung một họ màu và giúp bạn chia vấn đề 5.000 mảnh ban đầu thành một chuỗi nhỏ hơn, có thể quản lý được. Nhưng khi bạn ở một mình, AI có thể giúp đỡ. Mục đích là để có một loại “Jeeves for jigsaws” cung cấp sự hỗ trợ vừa đủ để làm cho câu đố có thể giải được trở lại, thay vì giải nó một cách hoàn toàn, điều này sẽ cướp đi niềm vui của bạn và cũng thực sự khó khăn nếu xét đến mức độ tự do liên quan (ví dụ: căn chỉnh từng mảnh, xoay tùy ý, hình dạng không đều, biến thể ánh sáng). Ví dụ: AI có thể cho bạn biết một quân cờ cụ thể có nhiều khả năng thuộc về khu vực nào trên bàn cờ, quân cờ nào có thể tạo thành một cụm và chiến lược phân chia và chinh phục nào có thể mang lại hiệu quả cao nhất. Điều thú vị là, các vấn đề giống như ghép hình xuất hiện trong các bối cảnh khác nhau, từ việc ghép các ô hình ảnh vệ tinh và tái tạo tài liệu pháp y cho đến xác minh lắp ráp sản xuất và phục hồi tác phẩm nghệ thuật. Mỗi vấn đề này có thể được đóng khung dưới dạng bài toán so khớp từng đoạn với tham chiếu và các kỹ thuật giải pháp liên quan (ví dụ: trích xuất tính năng, đo lường độ tương tự, gán toàn cục) có thể áp dụng được trên các miền. Trò chơi ghép hình là một trường hợp sử dụng trực quan, dễ hiểu và có thể kiểm chứng để khám phá những ý tưởng này trước khi áp dụng chúng ở nơi khác. Trong phần tiếp theo, chúng tôi sẽ xây dựng một trợ lý để giải các câu đố ghép hình, bắt đầu bằng cách đóng khung một phiên bản đơn giản của vấn đề và kết thúc bằng việc triển khai bằng Python bằng OpenCV, NumPy và SciPy — thứ mà bạn thậm chí có thể sử dụng cho chính mình vào lần tiếp theo khi bạn gặp một trò chơi ghép hình đặc biệt khó. Đóng khung vấn đề ghép hình Một trò chơi ghép hình bao gồm một tập hợp cố định các mảnh ghép có hình dạng độc đáo, lồng vào nhau thường tạo thành một hình chữ nhật. Mục tiêu là tái tạo lại hình ảnh đó, bắt đầu từ một đống mảnh ghép bị xáo trộn, bằng cách đặt từng mảnh vào đúng vị trí của nó với các cạnh lồng vào nhau với các cạnh lân cận của chúng. Một giải pháp hoàn chỉnh đòi hỏi phải kết hợp cả nội dung trực quan của từng phần và khả năng tương thích hình học của các cạnh của nó. Đây có thể là một quá trình khó tự động hóa. Lấy dữ liệu đầu vào sạch là thách thức đầu tiên. Các mảnh bị xáo trộn sẽ cần phải được chụp ảnh (ví dụ: bằng điện thoại thông minh), điều này gây ra ánh sáng không đồng đều, bóng, ánh sáng chói và biến dạng phối cảnh. Tham chiếu đã được giải quyết thường là bìa hộp xếp hình, có thể chứa văn bản phủ, cấu hình màu khác và tỷ lệ khác với ảnh bị xáo trộn. Sau đó là các mảnh, với hướng tùy ý, hình bóng không đều và các vùng lớn đồng nhất về mặt thị giác (bầu trời, cỏ, lông thú), trong đó nhiều mảnh trông gần giống nhau. Tổng hợp lại, những mức độ tự do này làm cho trò chơi ghép hình trở thành một vấn đề khó giải theo cách hoàn toàn tự động nói chung. Tuy nhiên, vì mục tiêu của chúng tôi chỉ là xây dựng một trợ lý có thể cung cấp những gợi ý hữu ích nên chúng tôi có thể đơn giản hóa phạm vi vấn đề một cách đáng kể. Bóng mảnh có thể bị bỏ qua, cho phép thuật toán của chúng tôi phủ một lưới thông thường lên cả hai hình ảnh và coi mỗi ô lưới là đơn vị so sánh; điều này làm giảm vấn đề đối sánh hình học thành vấn đề chủ yếu là trực quan. Các đường lưới có thể không tuân theo các cạnh của mảnh một cách chính xác, nhưng kết quả không chính xác ở các ranh giới ô có xu hướng ảnh hưởng đến màu sắc tổng thể và cấu hình cạnh của mỗi ô đủ khiêm tốn để tạo ra bản địa hóa hữu ích cho các câu đố có hình ảnh đa dạng. Và thay vì đặt chính xác từng mảnh, người trợ lý chỉ cần thu hẹp từng mảnh xuống một khu vực ứng viên đủ nhỏ. Chúng ta có thể trình bày bài toán gán mảnh ghép hình kết quả một cách chính thức như sau: Cho hai hình ảnh (một tham chiếu đã được giải và một câu đố được xáo trộn với các ô được sắp xếp theo lưới R-by-C), hãy tìm ánh xạ phỏng đoán từ mỗi vị trí ô được xáo trộn đến vị trí chính xác của nó trong lưới đã được giải. Ngay cả với những cách đơn giản hóa ở trên, ba vấn đề vẫn khiến bài toán trở nên không hề tầm thường: Sự mơ hồ về thị giác: Các vùng lớn có màu tương tự nhau (bầu trời, cỏ, nước, lông thú, v.v.) có nghĩa là nhiều phần trông gần giống nhau khi so sánh các mảng hình ảnh nhỏ. Trong những trường hợp như vậy, điểm tương tự giữa phần ứng cử viên và bất kỳ ô đích nào trong khu vực đó sẽ gần như đồng nhất, tạo ra sự phân bố đồng đều và không có người chiến thắng rõ ràng. Thuật toán sẽ không có cơ sở nguyên tắc để xếp hạng điểm đến này so với điểm đến khác, vì vậy việc phân bổ ở các khu vực này về cơ bản có thể mang tính tùy ý. Kinh thánh

Nguồn tin: Towards Data Science — Tác giả: Chinmay Kakatkar. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.