題:
自動註釋工具:將網絡攝像頭電影轉換為PGN
Riccardo Zorn
2014-02-09 23:40:22 UTC
view on stackexchange narkive permalink

有時候在全盤閃電戰中,或者在zeitnot時,註釋它們變得非常困難。

我已經看到了幾種軟件/硬件來幫助編寫該標記,甚至經FIDE批准的;這些要求您重複設備上的移動。幾乎沒有筆和紙快,就像容易出錯一樣,而且您冒著輸入錯誤的動作並浪費更多時間的風險。

DGT會自動製作一個木板,但只能按其零件使用,起價為400歐元,是錦標賽木板的兩倍。可以使用一些獨立的項目,例如 usb棋盤101語音控制的象棋機器人棋盤步進音序器。另外,還有一些開放項目可用,甚至可以移動(或巨大的塊)。

我今晚有一個季后賽,比賽規則規定比賽時間較短,較短的比賽,直到有贏家為止。因此,我考慮過要為董事會的電影拍攝,否則我們會迷路。但是後來我的編程背景開始了,我以為“必須有一些可以處理電影並編寫PGN的軟件”。

我到處搜索,一無所獲。

  1. 是否存在任何此類東西(網絡攝像頭/視頻到pgn轉換器)?原型嗎?
  2. 有人嘗試過這樣的壯舉並分享了他們的研究成果嗎?
  3. 是否存在明顯的局限性,使該項目不太可能成功?
  4. 如果購買該項目,您會購買嗎?存在嗎?
  5. ol>
這將是一個有趣的計算機視覺/機器學習項目!
我認為必須從上到下拍攝木板才能產生“ 2D”圖像。否則,存在將3D視圖轉換為2D視圖的另一個問題,並且必須分別處理不同的3D角度。
實際上,這只是將板“展開”並使其所有正方形均為正方形的線性變換。主要問題是,如果角度可以使工件相互對齊,則要識別工件從哪個正方形移動。
也許我們可以為此項目做某種形式的眾包。我認為這很有趣。我敢打賭某些大學生可以為高級項目做這件事。我們需要找到一種方法將這種想法傳達給教授。也許有兩個攝像機放置在兩個不同的位置可以可靠地完成。我會對3D方法感興趣,而不是對2D開銷感興趣。安裝高架攝像頭實在是太不切實際了,我也會對軟件感興趣,該軟件會從幾個不同的攝像頭獲得輸入,從而拍攝在長桌上同時玩幾個遊戲並產生符號-
鑑於https://www.kickstarter.com/projects/infivention/square-off-worlds-smartest-chess-board-relaunch已經成功,眾籌項目似乎確實可行。特別是因為最終用戶的成本將非常低。
九 答案:
Arlen
2014-02-10 06:11:37 UTC
view on stackexchange narkive permalink

按順序

1)不知道

2)不知道

3)有幾種原因使這種情況成為可能項目不平凡,甚至困難。例如,其中至少有一個是跟隨該塊,將其與手勢區分開。另外,確定何時停止移動將是計算機視覺要解決的一個有趣問題。這些問題已經在其他情況下得到了解決,但並不是100%的精度,當然也沒有以與DGT板競爭的價格。

然後是攝像機的位置問題可以定位。直接在頭頂上方將提供木板的最佳視圖,從而更容易精確地確定正方形。但是無論攝像機放置在哪裡,都有一個明顯的可能性是其中一位玩家會遮擋住視線,要么斜倚在棋盤上,爭分奪秒,要么只是打手勢。

4)除非是真的很便宜。而且我不希望那樣。我的推理很簡單。隨著時間的縮短,遊戲的質量下降,到我不再感興趣的程度。

您在4點上說得很對:質量確實很差。不用花時間去設置相機,更不用說花一個月的時間來編寫軟件了。我只是贏了季后賽,但我為自己的表現差勁而感到尷尬。
Tihomir Georgiev
2014-02-10 02:27:47 UTC
view on stackexchange narkive permalink

那將是一個相當複雜的任務。也許合理的第一步是研究從單個圖像中識別FEN位置-該圖像存在更多資源,例如:

非常好,謝謝。我都讀了,他們真的很有趣。 Chessgrabber是一個最近的項目,絕對更合適,我聯繫了開發人員。
我認為從第一步開始,將視頻轉換為PGN並不是很困難-每隔幾毫秒拍攝一次圖像,對其進行分析,並且如果位置已經以合法方式更改,則將新位置添加到文件中。
更新:開發人員響應,它將永遠無法用於重疊部分的3D傾斜圖像。太糟糕了,沒有這個基礎,該項目將永遠無法啟動。
識別靜止圖像實際上比將視頻引導到靜止圖像要困難得多,因為後者消除了必須能夠識別片段的問題。
Wolfgang Fahl
2019-10-16 00:11:13 UTC
view on stackexchange narkive permalink

現在是2019-12年,距原始問題還有5年。

  1. 是否存在任何此類問題(網絡攝像頭/視頻到pgn轉換器)?也許是準原型?

    請參見

  2. 有人嘗試過嗎?這樣的壯舉並分享了他們的研究成果?

    是的-到目前為止,我發現了約35篇研究論文,約10項開源解決方案和一項商業產品

    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#Commercial

    http://wiki.bitplan.com/index.php/PlayChessWithAWebCam是您制定的目標的另一個投影。該項目於2019-10-15開始,在幾個小時內我已經找到了很多資源,例如這個問題大約兩個月後,我更新了我的答案(請參閱上面的鏈接)

  3. 是否存在明顯的局限性,使該項目不太可能成功?我31年前做過的一個類似項目,見 http://wiki.bitplan.com/index.php/MagneticSensorChessBoard1987。當時,我試圖創建一個可以檢測移動的棋盤。我在木板和簧片觸點中使用了磁鐵。成功的關鍵是使用國際象棋引擎,該引擎具有新的“規則”,使其能夠僅專注於機芯而不必檢測單個棋子。如上面的回答所述,向非皇后樂隊的晉升可能是困難的邊緣用例之一。通過圖片差異檢測工件的運動是一個眾所周知的問題。

    國際象棋引擎和UCI兼容GUI如今也已可用。因此,現在的問題更多是集成問題,然後需要解決各個細節問題。

    一個主要障礙是“原型”與產品之間的區別。參見例如 http://www.nandanbanerjee.com/files/ICCVR-08AUG12-011%20paper.pdf

    一篇比這個問題還要古老但與該產品相距甚遠的論文您可以以合理的價格購買。

  4. 如果存在,您會購買嗎?

    是的。幾天前,當我購買一個新的國際象棋棋盤時,我正在尋找一個可以記錄移動動作的棋盤,但仍然在500歐元左右。從外觀上看,這些天的硬件成本將遠遠低於150歐元,其中包括一塊不錯的棋盤和棋子。我將相應地更新此答案。

  5. ol>
謝謝,我期待著你的進步
Rauan Sagit
2014-02-15 21:19:22 UTC
view on stackexchange narkive permalink

自動錄製國際象棋遊戲顯然很有趣並且很有意義(現場遊戲或多或少地解決了同一問題)。據我所知,今天沒有用於此目的的軟件。為了解決此問題,我認為“簡單”情況應如下所示。

  1. 應該從上至下拍攝棋盤以獲得二維視圖。 (動機:在三維視圖中進行拍攝會導致問題,因為視圖傾斜,並且某些塊會阻擋後面的其他塊的視圖。此外,可能會有不同的3D視圖,這會抵消乾淨的過程。)
  2. 應該手動編輯影片,以捕獲“乾淨的木板”時刻並消除兩個玩家的手或頭擋住視線時的時刻。
  3. 軟件方面的圖像處理算法應檢測到板上的變化並將其記錄為移動。它還應該自動旋轉並變換圖像,以檢測板的方向,從而檢測坐標。
  4. 該軟件應使用起始位置“存儲”每種類型的零件,然後將其用於圖像識別遊戲。也許可以寫出一些巧妙的技巧來巧妙地解決碎片識別問題。
  5. ol>

    帶有搜索字符串的Google快速搜索

    chess遊戲圖像處理

    歸還了這篇有趣的文章

    總而言之,實現這種類型的軟件應該是現實的。然而,對於人類來說,完成相同的工作可能會更便宜(將視頻剪輯中的內容轉移到計算機上)。

我花了一些時間完成了您所鏈接的G.D. Illeperuma的研究,這很有趣。但這確實排除了製作3D偏斜圖像的可能性。謝謝,非常有趣的文章。
歡迎您光臨@RiccardoZorn!我必須承認我看不到處理3D傾斜圖像的意義。這種情況是,如果人們在記錄視頻錄製的動作時遇到麻煩,那麼圖像處理軟件將面臨更大的困難。
設置立式相機需要大量空間,這是侵入性的,並且您需要自定義的支撐/支架。這使其不切實際:-(
在這種情況下,更簡單,更便宜的“活動板”技術可能是更好的選擇。可以選擇以合理的3D角度拍攝影片,然後讓人們從視頻記錄中提取國際象棋符號。
文件http://www.researchgate.net/publication/234491319_Using_Image_Processing_Techniques_to_Automate_Chess_Game_Recording/file/79e4150fe3be5bef54.pdf似乎不再存在。有人有副本嗎?
Marius
2015-06-15 16:55:38 UTC
view on stackexchange narkive permalink

我寫了這個軟件。它包含用於動作識別的網絡攝像頭AI,已連接到Arena GUI。

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

恭喜您!Marius,恭喜您!Alpha版已經可以進行測試了嗎?您可以通過服務公開這些步驟,以便其他軟件使用嗎?
Cedric Zoppolo
2016-09-09 09:32:15 UTC
view on stackexchange narkive permalink

2013年,我在FING UdelaR的圖像處理課程中從事國際象棋跟踪項目 8x8cam

然後在2014年,其他學生創造了一個更好的項目Android版本,名為 chesstrack 。在它的網絡下,您可以找到視頻並鏈接到他們使用的代碼。

我很想看到一個我多年的項目構想的最終應用程序。因此,如果有關於此的新聞,請發表評論。

回答您的尖銳問題:

  1. 是否存在任何此類問題(網絡攝像頭/視頻到pgn轉換器


    除了我的項目 8x8cam chesstrack外,我最近還找到了一個名為 ChessCam a所有這些項目都是開源的,只有在您從它們創建新項目時,才需要將其命名為資源。

  2. 是否有人嘗試過這種壯舉並分享了他們的成就?是研究。


    是的。您可以在上一個問題的答案中看到這樣的結果。

  3. 是否存在明顯的局限性使得該項目不太可能成功?


    我認為,最困難的部分是使軟件無論相機如何放置都可以工作,並且不受照明的影響,還可以在快節奏的遊戲中工作並在遊戲時使用手遮擋功能正在播放,以便正確檢測已完成的移動。

  4. 如果存在,您會購買嗎?


    肯定是。

  5. ol>
Lynob
2014-02-18 01:05:12 UTC
view on stackexchange narkive permalink

我不會回答這個問題,因為我不知道那裡是否有軟件。我只是說我怎麼想的方式,我不確定,所以...


好吧,首先您需要確保視頻是通過國際象棋軟件記錄的,而不是現場錦標賽的記錄,只是為了簡化工作。

您需要將電影轉換為圖像

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

這很容易,現在很困難,您需要開始進行圖像處理,為此,功能最強大的是OpenCV。

為此,有幾個技術,我將為您提供鏈接,以便您閱讀。

它比您想像的要復雜但更簡單,因為您只需要知道起始位置是什麼,遍歷所有圖像並查看差異。看看OpenCV文檔,您會發現關於該主題的大量材料。


哦,對了,您要的內容已經完成,但沒有使用軟件據我所知,有一個舊項目是使用Pascal編碼的,攝像機放在板上,機器人進行圖像處理並移動。如今,許多機器人下棋。

您可以購買一個Arduino uno,它的光檢查器可以檢測到白色和黑色,進行一些編碼後可以下棋。 。 :)

ajax333221
2014-03-19 02:18:05 UTC
view on stackexchange narkive permalink

編輯:升級到除皇后之外的任何東西,都會使一切爆炸。支持它也將非常困難(我的第2部分程序支持促銷不足,但是僅通過讀取像素來存儲第1部分的信息是一場噩夢)。

Edit2:我只是注意到您對PGN表示真正的棋盤象棋,所以這都是沒有用的,我很可能會刪除答案。

第1部分:使用像素讀取器存儲正方形完全有可能,需要採取的步驟是:
  1. 更改面板的設置,以便突出顯示最後一步(最好是僅是邊界)
  2. 編寫一個程序來讀取給定(x,y)上的像素
  3. 使其在每個正方形上讀取大約5個以上的像素(因此,光標/片段不可能覆蓋所有像素)讀取)
  4. 將十六進制轉換為RBG,然後給出我們認為被視為接近“最後移動”顏色的可接受值的範圍
  5. 將移動保存在格式為 [“ h1-h8”,“ e4-e5”,...] array>的數組中,僅將起始和結束平方(orde r 不重要
  6. ol>

    注意:從這裡我們不能真正知道從哪個正方形開始/結束位置,但是在那裡只有兩種可能性,其中只有一種是合法的。

    我用C#為RPG遊戲編寫了簡單的基於像素的宏/機器人,我可以保證這不是難,因為:

    1. 凸輪是靜態的(因此x,y值不會弄亂)
    2. 您以前知道背景色,也​​可以設置背景色
    3. ol>

      基本上,最好先在線玩遊戲,然後直接從屏幕上錄製。

      抱歉,沒有可用的程序第1部分


      第2部分:將列表導出到PGN

      要將此列表轉換為真實的PGN,可以使用我用JavaScript編寫的程序來記錄移動,而其中一個函數 moveCaller()可以傳遞兩個將位置平方並在 initial_pos 的合法動作中搜索 final_pos ,如果存在匹配項,則調用 makeMove()。因此,我們可以將其兩次調用 e5到e4 e4到e5 ,我保證它將忽略不合法的內容。

      1. 下載項目(直接鏈接 .zip
      2. 解壓縮 .zip
      3. ,更改 index.html 文件,其內容如下:
      4. ol>

        '

          $(function(){var i,len,arr,temp,m_board; m_board = IsepicChess。 initBoard({name:“ main”}); arr = [“ e4-e2”,“ e7-e5”,“ f3-g1”]; //可以交換初始和最終平方(i = 0,len = arr.length; i<len; i ++){temp = arr [i] .split(“-”); //以下兩行之一將自動失敗m_board.moveCaller(temp [0],temp [1 ]); m_board.moveCaller(temp [1],temp [0]);} m_board.refreshBoard();});  

        .4。複製移動列表並在其上方添加一些PGN標頭,例如 [WhiteElo“ 2400”] 等。

Cferrel
2014-02-22 11:45:22 UTC
view on stackexchange narkive permalink

我在所有下棋遊戲中都使用 Monroi國際象棋記數器,它基本上是一個電子棋盤。

但是,這並不能回答OP的問題。
您可以使用數字演示器通過桌子上方的攝像機來記錄遊戲。那麼您可以編寫一個應用程序來跟踪網格中的對象。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...