Công cụ để ký hiệu tự động: phim webcam đến PGN


14

Đôi khi trong các trò chơi blitz trên bảng, hoặc khi trong zeitnot, rất khó để chú thích chúng.

Tôi đã thấy một số phần mềm / phần cứng để giúp viết ký hiệu, thậm chí một phần mềm đã được FIDE phê duyệt ; những điều này đòi hỏi bạn phải lặp lại các động tác trên thiết bị. Nhanh hơn bút và giấy, dễ bị lỗi, cộng với việc bạn có nguy cơ gõ sai bước và lãng phí nhiều thời gian hơn.

DGT tạo ra một bảng sẽ tự động làm điều này, nhưng nó sẽ chỉ hoạt động với các quân cờ của nó, và bắt đầu ở mức 400 €, gấp đôi so với bảng giải đấu . Một số dự án độc lập có sẵn như bàn cờ usb 101 , hoặc rô bốt cờ điều khiển bằng giọng nói , trình tự bước tiếp theo của bàn cờ . Ngoài ra, một số dự án mở có sẵn thậm chí di chuyển các mảnh (hoặc các mảnh khổng lồ ).

Tôi có một trận playoff tối nay, và các quy tắc giải đấu chỉ ra các trò chơi ngắn hơn và ngắn hơn cho đến khi có một người chiến thắng. Do đó tôi nghĩ về việc quay một bộ phim của hội đồng quản trị nếu chúng ta mất dấu vết. Nhưng sau đó, nền tảng lập trình của tôi đã khởi động và tôi nghĩ rằng "phải có một số phần mềm có thể xử lý một bộ phim và viết PGN".

Tôi tìm kiếm khắp nơi, và không tìm thấy gì.

  1. Có bất kỳ điều như vậy tồn tại (webcam / video để chuyển đổi pgn)? Một nguyên mẫu có thể?
  2. Có ai đã cố gắng như vậy và chia sẻ nghiên cứu của họ?
  3. Có những hạn chế rõ ràng làm cho dự án này khó có thể thành công?
  4. Bạn sẽ mua nó nếu nó tồn tại?

2
nó sẽ là một dự án máy tính / máy học thú vị!
Ghi nhớ

Tôi nghĩ rằng bảng phải được quay từ trên xuống để tạo ra hình ảnh "2D". Mặt khác, có một vấn đề khác về việc chuyển chế độ xem 3D sang chế độ xem 2D và các góc 3D khác nhau phải được xử lý riêng.
Rauan Sagit

thực ra nó chỉ đơn giản là một phép biến đổi tuyến tính để "gỡ" bảng và làm cho tất cả các hình vuông của nó vuông. vấn đề chính là nhận ra hình vuông mà mảnh được di chuyển từ nếu góc đó sao cho các mảnh có thể thẳng hàng với nhau.
peter

Có lẽ chúng ta có thể thực hiện một số loại hình cộng đồng cho dự án này. Tôi nghĩ nó rất thú vị. Tôi cá rằng một số sinh viên đại học có thể làm điều này cho các dự án cao cấp. Chúng ta cần tìm cách truyền đạt ý tưởng đến các giáo sư. Có thể với hai camera được đặt ở hai vị trí khác nhau, điều này có thể được thực hiện một cách đáng tin cậy. Tôi sẽ quan tâm đến cách tiếp cận 3D, không phải 2D từ trên cao. Gắn máy ảnh trên cao là quá không thực tế. Tôi cũng sẽ quan tâm đến phần mềm lấy đầu vào từ một số máy ảnh khác nhau quay một số trò chơi cùng lúc trên một chiếc bàn dài và tạo ra ký hiệu - cho

Cho rằng kickstarter.com/projects/infivention/ đã thành công, một dự án gây quỹ cộng đồng dường như khả thi. Đặc biệt là vì chi phí cho người dùng cuối sẽ rất thấp.
Wolfgang Fahl

Câu trả lời:


4

Rõ ràng là rất thú vị và có liên quan để tự động ghi lại các trò chơi cờ vua (bảng trực tiếp ít nhiều giải quyết cùng một vấn đề). Theo tôi biết, không có phần mềm cho mục đích này tồn tại đến ngày nay. Để giải quyết vấn đề này, tôi nghĩ rằng trường hợp "đơn giản" nên như sau.

  1. Bàn cờ phải được quay từ trên xuống để có cái nhìn hai chiều. (Động lực: quay phim ở chế độ xem ba chiều sẽ gây ra sự cố do chế độ xem bị lệch và các phần sẽ chặn chế độ xem cho các phần khác phía sau chúng. Ngoài ra, các chế độ xem 3D khác nhau có thể chống lại quy trình sạch.)
  2. Bộ phim nên được chỉnh sửa thủ công để ghi lại những khoảnh khắc "bảng sạch" và loại bỏ những khoảnh khắc khi tay hoặc đầu của hai người chơi chặn tầm nhìn.
  3. Thuật toán xử lý hình ảnh ở phía phần mềm sẽ phát hiện các thay đổi trên bảng và ghi lại chúng dưới dạng di chuyển. Nó cũng nên tự động xoay và biến đổi hình ảnh để phát hiện hướng bảng và do đó tọa độ.
  4. Phần mềm nên sử dụng vị trí bắt đầu để "ghi nhớ" mọi loại mảnh và sau đó sử dụng chúng để nhận dạng hình ảnh trong trò chơi. Có lẽ, một số thủ thuật thông minh có thể được viết để giải quyết vấn đề nhận dạng mảnh một cách thông minh.

Tìm kiếm nhanh trên Google với chuỗi tìm kiếm

xử lý hình ảnh trò chơi cờ vua

trả lại bài viết thú vị này

Nói chung, nên thực hiện loại phần mềm này. Tuy nhiên, con người có thể làm công việc tương tự rẻ hơn (chuyển các video từ video clip sang máy tính).


Phải mất một thời gian để trải qua nghiên cứu của GDIlleperuma mà bạn liên kết, nó là thú vị nhất. Nhưng nó loại trừ một tiên nghiệm khả năng xây dựng hình ảnh sai lệch 3D. Cảm ơn bạn, một bài viết rất thú vị.
Riccardo Zorn

@RiccardoZorn bạn được chào đón! Tôi phải thừa nhận rằng tôi không thấy điểm xử lý hình ảnh bị lệch 3D. Tình huống là nếu một người gặp khó khăn khi ghi lại các chuyển động từ quay video, thì một phần mềm xử lý hình ảnh sẽ còn khó khăn hơn nữa.
Rauan Sagit

Thiết lập một camera dọc đòi hỏi nhiều không gian, xâm lấn và bạn cần một giá đỡ / chân đế tùy chỉnh. Điều này làm cho nó không thực tế :-(
Riccardo Zorn

Một công nghệ "bảng sống" đơn giản và rẻ tiền hơn có thể là một cách tốt hơn để đi trong trường hợp đó. Tùy chọn, quay phim từ một góc 3D hợp lý và để con người trích xuất ký hiệu cờ vua từ bản ghi video.
Rauan Sagit

file researchgate.net/publication/... doesnt dường như tồn tại nữa. có ai có một bản sao không?
peter

6

Theo thứ tự,

1) Không hiểu biết của tôi

2) Không hiểu biết của tôi

3) Có một số điều làm cho loại dự án này không tầm thường, thậm chí khó khăn. Chẳng hạn, ít nhất là theo sau tác phẩm, phân biệt nó với một cử chỉ tay chẳng hạn. Cũng xác định khi nào di chuyển dừng lại sẽ là một câu hỏi thú vị cho tầm nhìn máy tính để giải quyết. Những loại vấn đề này đã được giải quyết trong các tình huống khác, nhưng không chính xác 100% và chắc chắn không phải ở mức giá thậm chí gần với khả năng cạnh tranh với hội đồng DGT.

Sau đó, có câu hỏi về vị trí của máy ảnh. Chi phí trực tiếp sẽ cung cấp cái nhìn tốt nhất về bảng, giúp dễ dàng xác định hình vuông với độ chính xác. Nhưng bất cứ nơi nào máy ảnh được đặt, có một khả năng khác biệt là tầm nhìn của nó sẽ bị cản trở bởi một trong những người chơi, hoặc nghiêng người trên bảng, với lấy đồng hồ, hoặc đơn giản là đang di chuyển.

4) Không trừ khi nó thực sự rẻ. Và tôi không mong đợi nó sẽ xảy ra. Lý luận của tôi rất đơn giản. Khi thời gian kiểm soát rút ngắn, chất lượng trò chơi giảm đi, đến mức nó không còn thú vị với tôi nữa


Bạn làm cho một điểm tuyệt vời ở 4: chất lượng thực sự là kém. Không đáng để cài đặt máy ảnh, ít hơn một tháng để viết phần mềm. Tôi vừa thắng trận playoff, nhưng tôi lúng túng về việc tôi chơi kém như thế nào.
Riccardo Zorn

5

Đó sẽ là một nhiệm vụ khá phức tạp. Có thể bước đầu tiên hợp lý là xem xét nhận biết vị trí FEN từ một hình ảnh duy nhất - ví dụ như có nhiều tài nguyên hơn:


Tuyệt vời cảm ơn bạn. Tôi đọc cả hai và chúng thực sự thú vị. Chessgrabber là một dự án gần đây và chắc chắn phù hợp hơn, tôi đã liên hệ với nhà phát triển.
Riccardo Zorn

Tôi nghĩ rằng từ bước đầu tiên này, sẽ không quá khó để chuyển đổi video thành PGN - hãy chụp ảnh cứ sau vài mili giây, phân tích chúng và nếu vị trí đã thay đổi theo cách hợp pháp, hãy thêm vị trí mới vào tệp.
rlms

Cập nhật: nhà phát triển đã trả lời, nó sẽ không bao giờ hoạt động đối với các hình ảnh bị lệch 3-d với các phần chồng chéo. Quá tệ, nếu không có cơ sở đó, dự án sẽ không bao giờ bắt đầu.
Riccardo Zorn

nhận ra một hình ảnh tĩnh thực sự khó hơn so với video dẫn đến nó, vì cái sau loại bỏ vấn đề phải có khả năng xác định các mảnh.
peter

3

Tôi đã viết phần mềm này. Nó chứa webcam AI để nhận dạng di chuyển, được kết nối với Arena GUI.

https://www.youtube.com/watch?v=APkoE1UDKj0


Marius rất ấn tượng, xin chúc mừng! Alpha đã có sẵn để thử nghiệm chưa? Bạn có thể phơi bày các động thái thông qua một dịch vụ, để sử dụng bởi các phần mềm khác không?
Riccardo Zorn

3

Tôi đã làm việc trong dự án theo dõi cờ vua 8x8cam trong khóa học xử lý hình ảnh vào năm 2013 tại FING UdelaR.

Sau đó vào năm 2014, các sinh viên khác đã tạo ra một phiên bản tốt hơn cho Android có tên là chesstrack . Trong trang web của nó, bạn có thể tìm thấy video và liên kết đến mã họ đã sử dụng.

Tôi rất thích nhìn thấy một ứng dụng hoàn thiện của ý tưởng dự án này tôi đã có trong nhiều năm. Vì vậy, nếu có một số tin tức về điều này xin vui lòng để lại nhận xét.

Trả lời các câu hỏi nhọn của bạn:

  1. Có bất kỳ điều như vậy tồn tại (webcam / video để chuyển đổi pgn? Một nguyên mẫu có thể?


    Ngoài dự án 8x8camchesstrack của tôi, gần đây tôi đã tìm thấy một dự án có tên ChessCam . Tất cả các dự án này là Nguồn mở và chỉ cần được đặt tên là tài nguyên nếu bạn tạo một dự án mới từ chúng.

  2. Có ai đã cố gắng như vậy và chia sẻ nghiên cứu của họ?


    Đúng. Bạn có thể thấy như vậy trên câu trả lời của câu hỏi trước.

  3. Có những hạn chế rõ ràng làm cho dự án này khó có thể thành công?


    Phần khó nhất tôi tin là làm cho phần mềm hoạt động cho dù máy ảnh được đặt và độc lập với ánh sáng như thế nào. Và cũng để làm việc trên các trò chơi có nhịp độ nhanh và làm việc với các khớp tay khi trò chơi đang được chơi, để phát hiện chính xác di chuyển được thực hiện.

  4. Bạn sẽ mua nó nếu nó tồn tại?


    Chắc chắn là có.


3

Bây giờ là 2019-12 và 5 năm sau câu hỏi ban đầu.

  1. Có bất kỳ điều như vậy tồn tại (webcam / video để chuyển đổi pgn)? Một nguyên mẫu có thể?

    xem

  2. Có ai đã cố gắng như vậy và chia sẻ nghiên cứu của họ?

    Có - cho đến nay tôi đã tìm thấy khoảng 35 tài liệu nghiên cứu và khoảng 10 giải pháp nguồn mở và một đề nghị thương mại

    2.1 http://wiki.bitplan.com/index.php/PlayChessWithAWebCam/Papers

    2.2. http://wiki.bitplan.com/index.php/PlayChessWithAWebCam#Open_Source_Projects

    2.3. http://wiki.bitplan.com/index.php/PlayChessWithAWebCam#CommIAL

    http://wiki.bitplan.com/index.php/PlayChessWithAWebCam là một dự án khác nhắm đến các mục tiêu mà bạn đã nêu. Dự án đã được bắt đầu 2019-10-15 và trong vài giờ tôi đã tìm thấy rất nhiều tài nguyên, ví dụ: Câu hỏi này Hai tháng sau tôi đã cập nhật câu trả lời của mình (xem các liên kết ở trên)

  3. Có những hạn chế rõ ràng làm cho dự án này khó có thể thành công? Tôi chỉ có thể trả lời từ kinh nghiệm của bản thân với một dự án tương tự tôi đã làm cách đây 31 năm, xem http://wiki.bitplan.com/index.php/Mag từSensorChessBoard1987 . Lúc đó tôi đã cố gắng tạo ra một bàn cờ có thể phát hiện ra các nước đi. Tôi đã sử dụng nam châm trong các miếng gỗ và tiếp xúc sậy. Chìa khóa thành công là sử dụng một cỗ máy cờ vua có "quy tắc" mới để có thể tập trung vào các chuyển động một mình và không phải phát hiện từng quân cờ. Như đã nêu trong một câu trả lời ở trên các chương trình khuyến mãi cho các tác phẩm không phải là nữ hoàng có thể là một trong những giai đoạn khó khăn. Phát hiện chuyển động của các mảnh thông qua sự khác biệt hình ảnh là một vấn đề được hiểu rõ.

    Các công cụ cờ vua và GUI tương thích UCI cũng có sẵn trong những ngày này. Vì vậy, vấn đề là một vấn đề tích hợp nhiều hơn những ngày này sau đó giải quyết các vấn đề chi tiết cá nhân.

    Một trở ngại lớn là sự khác biệt giữa "nguyên mẫu" và sản phẩm. Xem ví dụ: http://www.nandanbanerjee.com/files/ICCVR-08AUG12-011%20apers.pdf

    một bài báo thậm chí còn cũ hơn câu hỏi này nhưng khác xa với một sản phẩm mà bạn có thể mua với giá cả hợp lý.

  4. Bạn sẽ mua nó nếu nó tồn tại?

    Đúng. Khi tôi mua một bàn cờ mới vài ngày trước, tôi đã tìm kiếm một bàn cờ có thể ghi lại các nước cờ và nó vẫn còn khoảng 500 EUR. Vì có vẻ như chi phí phần cứng sẽ thấp hơn 150 EUR trong những ngày này bao gồm cả bàn cờ và quân cờ.

    Phần mềm cũng có thể là mã nguồn mở và miễn phí (như bia miễn phí) sớm. Tôi sẽ cập nhật câu trả lời này cho phù hợp.


1
Cảm ơn bạn, tôi rất mong được thấy sự tiến bộ của bạn
Riccardo Zorn

1

Tôi sẽ không trả lời câu hỏi, vì tôi không biết có phần mềm nào ngoài đó không. Tôi chỉ nói rằng tôi nghĩ đó là cách thực hiện, tôi không biết chắc chắn, vì vậy ...


Được rồi trước tiên bạn cần đảm bảo rằng video được ghi lại từ một phần mềm cờ vua, không phải là một giải đấu trực tiếp, chỉ để làm cho công việc của bạn dễ dàng hơn.

Bạn cần chuyển đổi phim thành hình ảnh

ffmpeg -i foo.avi -vsync 0 -vf select="eq(pict_type\,PICT_TYPE_I)" -s WxH -f image2 foo-%03d.jpeg

Điều đó thật dễ dàng, bây giờ là phần khó, bạn cần bắt đầu thực hiện quá trình xử lý ảnh, vì điều đó, mạnh nhất là OpenCV.

Vì vậy, có một số kỹ thuật, tôi sẽ cung cấp cho bạn các liên kết để bạn có thể đọc chúng.

Nó phức tạp nhưng đơn giản hơn bạn nghĩ, bởi vì bạn chỉ cần biết vị trí bắt đầu là gì, lặp qua tất cả các hình ảnh và thấy sự khác biệt. Hãy xem các tài liệu OpenCV bạn sẽ tìm thấy hàng tấn tài liệu về chủ đề đó.


À nhân tiện, những gì bạn yêu cầu đã được thực hiện, nhưng không sử dụng phần mềm theo như tôi biết, có một dự án cũ được mã hóa bằng Pascal, máy ảnh đặt trên bảng, robot xử lý hình ảnh và di chuyển. Ngày nay nhiều robot chơi cờ.

Bạn có thể mua một Arduino uno, và kiểm duyệt ánh sáng của nó, nó sẽ phát hiện các mảnh trắng và các mảnh đen, một số mã hóa và nó sẽ chơi cờ vua. :)


1

Chỉnh sửa: quảng bá đến bất cứ điều gì khác với nữ hoàng sẽ khiến mọi thứ bùng nổ. Cũng sẽ rất khó để hỗ trợ điều này (chương trình của tôi cho Phần 2 hỗ trợ bảo mật, nhưng lưu trữ thông tin của Phần 1 hoàn toàn bằng cách đọc pixel là một cơn ác mộng).

Edit2: Tôi chỉ nhận thấy bạn có nghĩa là cờ vua thực sự với PGN, vì vậy điều này hoàn toàn vô dụng và rất có thể tôi sẽ xóa câu trả lời của mình.

Phần 1: lưu trữ các ô vuông bằng trình đọc pixel

Hoàn toàn có thể, các bước cần thiết sẽ là:

  1. thay đổi thiết lập của bảng để nó làm nổi bật bước cuối cùng (tốt nhất không chỉ là đường viền)
  2. viết chương trình đọc pixel trên (x, y)
  3. làm cho nó đọc khoảng 5+ pixel trên mỗi ô vuông (do đó con trỏ / mảnh không thể che được tất cả các pixel cần đọc)
  4. chuyển đổi HEX thành RBG, sau đó đưa ra một loạt các giá trị được chấp nhận về những gì chúng tôi cho là được coi là gần với màu "di chuyển cuối cùng"
  5. lưu di chuyển trên một mảng với định dạng ["h1-h8", "e4-e5", ...] chỉ là hình vuông ban đầu và kết thúc (thứ tự không quan trọng )

Lưu ý: từ đây chúng ta không thể thực sự biết vị trí nào là vị trí ban đầu / kết thúc, nhưng chỉ có 2 vị trí và chỉ có 1 trong số đó là hợp pháp.

Tôi đã viết đơn giản dựa trên điểm ảnh macro / bot cho game nhập vai trò chơi trong C #, tôi có thể đảm bảo đây không phải là điều đó khó khăn, cho rằng:

  1. cam là tĩnh (vì vậy các giá trị x, y không bị rối)
  2. trước đây bạn biết màu nền hoặc bạn có thể thiết lập nó trước khi chơi

Về cơ bản, tốt nhất là nếu trò chơi được chơi trực tuyến và bạn đang ghi trực tiếp từ màn hình.

Xin lỗi, không có chương trình nào có sẵn cho phần # 1


Phần 2: xuất danh sách đó vào PGN

Để biến danh sách này thành PGN thực, bạn có thể sử dụng chương trình tôi đã viết bằng JavaScript để ghi lại các chuyển động và một trong các chức năng moveCaller()bạn chuyển qua hai vị trí bình phương và nó tìm kiếm final_postrong các di chuyển hợp pháp initial_posvà nếu có một trận đấu thì nó sẽ gọi makeMove(). Vì vậy, chúng ta có thể gọi nó là hai lần e5 to e4e4 to e5và tôi chắc rằng điều này sẽ bỏ qua một bất hợp pháp.

  1. tải về dự án (liên kết trực tiếp .zip )
  2. giải nén .zip
  3. thay đổi JavaScript của index.htmltập tin với điều này:

'

$(function(){
    var i, len, arr, temp, m_board;

    m_board=IsepicChess.initBoard({name : "main"});

    arr=["e4-e2", "e7-e5", "f3-g1"]; //is ok for the initial and final squares to be swapped

    for(i=0, len=arr.length; i<len; i++){
        temp=arr[i].split("-");

        //one of the two following lines will silently fail
        m_board.moveCaller(temp[0], temp[1]);
        m_board.moveCaller(temp[1], temp[0]);
    }

    m_board.refreshBoard();
});

.4. sao chép danh sách di chuyển và thêm một số tiêu đề PGN phía trên nó như [WhiteElo "2400"]v.v.


-1

Tôi sử dụng Thiết bị ký hiệu cờ vua Monroi cho tất cả các trò chơi cờ vua của mình và về cơ bản nó là một bảng điện tử.


4
Điều đó không trả lời câu hỏi của OP, mặc dù.
Dag Oskar Madsen

bạn có thể sử dụng một người dẫn chương trình kỹ thuật số để ghi lại một trò chơi, đó là camera ngay phía trên bàn. sau đó bạn chỉ có thể viết một ứng dụng theo dõi các đối tượng trong một lưới.
Cferrel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.