2009-08-14 30 views
13

Tôi quyết định thực hiện một dự án để giải trí mà tôi muốn lấy làm hình ảnh đầu vào của một thẻ chơi và trả lại thứ hạng và bộ đồ của nó. Tôi nghĩ rằng tôi chỉ cần nhìn vào góc trên bên trái, vì nó có tất cả thông tin. Nó phải mạnh mẽ - nếu tôi có một hình ảnh lớn của Ace of Diamonds, tôi sẽ có thể mở rộng nó ở bất cứ đâu từ 20 đến 200% và vẫn nhận được câu trả lời đúng.Thẻ chơi OCR

Câu hỏi đầu tiên - có điều gì đã được viết không? Nếu vậy tôi sẽ tìm một cái gì đó khác để OCR vì vậy tôi không lặp lại những nỗ lực.

Thứ hai - cách tốt nhất để thực hiện việc này là gì? Mạng thần kinh? Một cái gì đó được mã hóa bằng tay? Bất cứ ai có thể cung cấp cho bất kỳ con trỏ? (0xCAAF9452 không phải là câu trả lời có thể chấp nhận được).

+11

Làm thế nào về 0xCAAF9460? – MitMaro

+0

bạn nhận được một bình luận upvote –

+2

Âm thanh như bạn đang làm một bot poker, không làm một số bài tập trí tuệ. –

Trả lời

2

Kiểm tra http://d-touch.org/, bạn sẽ phải thiết kế thẻ chơi của riêng mình.

Bạn cũng có thể quan tâm ocropus.

+0

bạn đang dùng nó theo cách ngược lại - tôi được chơi bài và phải OCR chúng, tôi không phải deisgn chơi thẻ được OCR-abe =) –

3

Tôi không nghĩ có điều gì đó đã được viết cho những gì bạn đang cố gắng hoàn thành (ít nhất là nguồn mở và bằng Python).

Đối với câu hỏi thứ hai của bạn, nó phụ thuộc vào những gì bạn đang cố gắng nhận ra. Nếu các đầu vào có thể đến từ nhiều nguồn khác nhau - ví dụ, các thương hiệu chơi bài khác nhau - thì bạn có thể sử dụng thuật toán học dựa trên (như mạng nơron hoặc máy hỗ trợ vector [SVM]), để cho nó học cách nhận ra các đầu vào không xác định. Tuy nhiên, nếu đầu vào luôn giống nhau về hình dạng hoặc kiểu, thì thuật toán so sánh hình ảnh đơn giản sẽ đủ (ví dụ: so sánh pixel của góc trên bên trái với các pixel của từng cấp).

Nếu bạn quyết định sử dụng thuật toán dựa trên máy học, tôi nghĩ bạn không cần các tính năng rất phức tạp, vì bộ quần áo và hàng không thực sự thay đổi nhiều về hình dạng hoặc phong cách, và bạn nên tốt với chỉ sử dụng các điểm ảnh của góc trên bên trái như các tính năng.

Có ví dụ về đồ chơi OCR here mà bạn có thể thấy thú vị. Các lib được sử dụng (LibSVM) cũng có một phiên bản Python, mà tôi đã sử dụng, và thấy rất đơn giản để làm việc với.

Hy vọng điều đó sẽ hữu ích.

1

Nó không phải là mạnh mẽ, nhưng bạn có thể nhìn vào màu sắc của 3 hoặc 4 vị trí trên thẻ để nếu chúng có màu trắng hoặc nếu chúng là màu, bạn có thể xác định thẻ nào và phù hợp với nó. Rõ ràng điều này sẽ không hoạt động nếu bạn không luôn có cùng một thẻ.

1

Cá nhân tôi sẽ đi theo tuyến đường học máy bằng cái này.

+0

Tại sao bạn sẽ cần máy học khi vấn đề là như vậy cụ thể? –

+3

Có lẽ tôi đã hiểu sai vấn đề, nhưng OP đang chụp ảnh thẻ và cố gắng suy ra thứ hạng và bộ đồ của họ đúng không? – DevDevDev

+0

Tôi đồng ý. Bạn nhận được một upvote để bù đắp cho những người khác:). –

1

Với kích thước mẫu có giới hạn (4 bộ quần áo, 13 giá trị khác nhau) Tôi chỉ cố gắng khớp hình ảnh tham chiếu của bộ đồ và giá trị với hình ảnh đầu vào mới. Đầu tiên, hãy tìm hộp giới hạn của giá trị/giá trị sắp tới (hộp nhỏ nhất bao quanh tất cả các pixel không phải màu trắng), chia tỷ lệ ảnh tham chiếu của bạn cho phù hợp với kích thước của hộp giới hạn đó và tìm "kết hợp" tốt nhất thông qua sự khác biệt tuyệt đối theo pixel. Màu của hình ảnh (tức là màu đỏ hoặc đen) sẽ làm cho việc này trở nên dễ dàng hơn.

4

Sử dụng OpenCV

+0

cảm ơn vì liên kết! –

+0

+1 OpenCV chắc chắn cung cấp một hộp công cụ tốt. – kenny

Các vấn đề liên quan