!7 cmodule TrainChessRecognizer > DynSingleFunctionWithPrintLog { transient new ChessOCR_SquareImagesCollector squareImagesCollector; start-thread { //temp dm_tempDisableAllButtons(); squareImagesCollector.loadImagesFromAGIBlue(); } void doIt { LPair images = squareImagesCollector.allImages(); new ChessPieceRecognizer pieceRecognizer; pieceRecognizer.load(); new Best best; for (double exp = -6; exp <= -2; exp += 0.02) { double factor = pow(10, exp); print("Factor: " + factor); best.put(factor, scoreForFactor(images, pieceRecognizer, factor)); } print(best); } double scoreForFactor(LPair images, ChessPieceRecognizer pieceRecognizer, double factor) { try { pieceRecognizer.magicCombineFactor = factor; new Scorer scorer; for (unpair S piece, BufferedImage img : images) { scorer.add(eqic(pairA(pieceRecognizer.recognize(img)), piece)); } print(scorer); ret scorer.score(); } catch print e { print("RECOGNIZER TOTAL FAIL"); ret 0; } } }