source: other-projects/is-sheet-music-encore/trunk/image-identification-terminal/javaAccuracyCalculator.java@ 33141

Last change on this file since 33141 was 33141, checked in by cpb16, 5 years ago

Completed end-to-end pipeline and one classifier

File size: 2.1 KB
Line 
1import java.io.File;
2import java.io.BufferedReader;
3import java.io.BufferedWriter;
4import java.io.FileReader;
5import java.io.FileWriter;
6public class javaAccuracyCalculator{
7
8 //Read in log.txt, grab first item in array of each line
9 //Counter for everytime have readline
10 //Calculate accuracy rate
11 public static void main(String[] args) {
12 try {
13 if (args.length != 3) {
14 System.out.println("Usage: imageClassifier <inputFilename> <classifierType> <outputFilename>");
15 }
16 else {
17 String inputFilename = args[0];
18 String classifierType = args[1];
19 String outputFilename = args[2];
20 FileReader fileReader = new FileReader(inputFilename);
21 BufferedReader buf = new BufferedReader(fileReader);
22 FileWriter fw = new FileWriter(outputFilename,true);
23 String line = null;
24 String[] item;
25 float trueAccuracyRate =0;
26 float falseAccuracyRate =0;
27 int trueCount = 0;
28 int falseCount = 0;
29 int sheetMusicCount = 0;
30 int notSheetMusicCount = 0;
31 //Splits into each record, since readLine splits by "\n"
32 while ((line = buf.readLine()) != null) {
33 item = line.split("\t");
34 //Calculate AccuracyRates
35 if(item[1].contains("TestImages/SheetMusic/")){
36 sheetMusicCount++;
37 if(item[3].equals("true")){
38 trueCount++;
39 }
40 }
41 if(item[1].contains("TestImages/NotSheetMusic/")){
42 notSheetMusicCount++;
43 if(item[3].equals("true")){
44 falseCount++;
45 }
46 }
47 }
48
49 //Amount of sheetMusic classified images / total amount of images read
50 trueAccuracyRate = ((float)trueCount/(float)sheetMusicCount)*(float)100;
51 //Amount of notSheetMusic classified images / total amount of images read
52 falseAccuracyRate = ((float)falseCount/(float)notSheetMusicCount)*(float)100;
53
54 fw.write("Classifier: " + classifierType + '\t' + "SheetMusicAccuracyRate: " + trueAccuracyRate + "%" + '\t' + "NotSheetMusicAccuracyRate :" + falseAccuracyRate + "%" + "\n");
55 buf.close();
56 fw.close();
57 }
58 }
59 catch(Exception e){
60 System.err.println(e);
61 }
62 }
63
64}
Note: See TracBrowser for help on using the repository browser.