Warning: session_start(): open(/var/lib/php/sessions/sess_kajf2vne6u0gov8u6c4c5bj2lb, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
cmodule TestAutoSegmenter > DynSingleFunctionWithPrintLog {
replace Segmenter with IF1>.
long maxMBs = 256; // save dat memory
L results = syncList();
new Best best;
transient long dataSize;
transient new L images;
srecord noeq Result(
S segmenterName, Segmenter segmenter,
double score, Map individualScores) {}
srecord noeq TestImage(S caseName, BufferedImage img, Rect boardLocation) {}
bool spaceToSpare() { ret toMB(dataSize) < maxMBs; }
void doIt {
if (empty(images)) loadImages();
Cl presets = agiBlue_chessBoardSegmenterPresetNames();
for ping (S preset : presets)
testSegmenter(preset, parameterizedSegmenterFromAGIBlue(preset));
}
void testSegmenter(S name, Segmenter seg) {
Result result = scoreSegmenter(seg);
print("Score for " + name + ": " + result.score);
results.add(result);
if (best.put(name, score))
print("NEW BEST!");
change();
}
Result scoreSegmenter(Segmenter seg) {
Result result = new(name, seg, 0, new LinkedHashMap);
try {
new Scorer scorer;
for (TestImage img : images) {
L out = seg.get(img.img);
Rect r = first(out);
double tolerance = imageDiameter(img.img)/48;
double score2 = video_scoreRect_score(img.boardLocation, r, tolerance);
scorer.addZeroToOne(score2);
result.individualScores.put(img, score2);
}
print(scorer);
result.score = scorer.score();
} catch print e {
print("SEGMENTER TOTAL FAIL");
}
ret result;
}
void loadImages {
LPair in = asLinkedList(agiBlue_chess_trainingImagesWithBoardLocations());
while (nempty(in)) {
if (!spaceToSpare())
break with print("Out of space (" + toM(dataSize) + " MB used), skipping " + nImages(in));
S name, Rect location = unpair popFirst(in);
pcall {
BufferedImage img = loadImage2(parseImageSnippetURL(agiBlue_lookupInSlice(agiBlue_chessBoardRecognitionTrainingImagesSliceID(), name, "input image")));
images.add(new TestImage(name, img, location));
dataSize += bufferedImageDataSize(img);
print("Have " + nImages(images) + ", data size: " + toM(dataSize) + " MB");
}
}
print("Loading done");
}
}