From ac80248b2e7f273d285ecdd240c09f2024cc4444 Mon Sep 17 00:00:00 2001 From: davpapp Date: Sun, 4 Mar 2018 18:08:04 -0500 Subject: [PATCH] OpenCV and TENSORFLOW imported successfully --- .classpath | 6 +----- src/IronMiner.java | 20 +++++++++++++------- src/ObjectDetector.java | 4 +++- src/ObjectTracker.java | 2 +- src/main.java | 2 +- target/classes/IronMiner.class | Bin 4316 -> 3755 bytes target/classes/ObjectDetector.class | Bin 6944 -> 6944 bytes target/classes/ObjectTracker.class | Bin 1860 -> 1860 bytes target/classes/main.class | Bin 991 -> 1104 bytes 9 files changed, 19 insertions(+), 15 deletions(-) diff --git a/.classpath b/.classpath index 59c135d..63d2139 100644 --- a/.classpath +++ b/.classpath @@ -6,16 +6,12 @@ - - - - - + diff --git a/src/IronMiner.java b/src/IronMiner.java index 759541c..2953469 100644 --- a/src/IronMiner.java +++ b/src/IronMiner.java @@ -36,9 +36,9 @@ public class IronMiner { public IronMiner() throws AWTException, IOException { - //cursor = new Cursor(); - //cursorTask = new CursorTask(); - //inventory = new Inventory(); + cursor = new Cursor(); + cursorTask = new CursorTask(); + inventory = new Inventory(); objectDetector = new ObjectDetector(); robot = new Robot(); randomizer = new Randomizer(); @@ -46,12 +46,15 @@ public class IronMiner { public void run() throws Exception { while (true) { + long frameStartTime = System.currentTimeMillis(); BufferedImage screenCapture = objectDetector.captureScreenshotGameWindow(); System.out.println("looking for iron ores"); + //int count = objectDetector.getObjectsInImage(screenCapture, 0.6); ArrayList detectedObjects = objectDetector.getObjectsInImage(screenCapture, 0.60); - ArrayList ironOres = objectDetector.getObjectsOfClassInList(detectedObjects, "ironOre"); + //ArrayList ironOres = objectDetector.getObjectsOfClassInList(detectedObjects, "ironOre"); + System.out.println("Found " + detectedObjects.size() + " objects."); - DetectedObject closestIronOre = getClosestObjectToCharacter(ironOres); + /*DetectedObject closestIronOre = getClosestObjectToCharacter(ironOres); if (closestIronOre != null) { Rect2d boundingBox = closestIronOre.getBoundingRect2d(); ObjectTracker ironOreTracker = new ObjectTracker(screenCapture, boundingBox); @@ -66,9 +69,12 @@ public class IronMiner { screenCapture = objectDetector.captureScreenshotGameWindow(); objectTrackingFailure = ironOreTracker.update(screenCapture, boundingBox); } - } - + }*/ + + // TODO: change this so that we only check the last slot for an item. + // //dropInventoryIfFull(); + System.out.println("Timespan: " + (System.currentTimeMillis() - frameStartTime)); } } diff --git a/src/ObjectDetector.java b/src/ObjectDetector.java index 9f03821..e94651b 100644 --- a/src/ObjectDetector.java +++ b/src/ObjectDetector.java @@ -57,7 +57,7 @@ public class ObjectDetector { public ArrayList getObjectsInImage(BufferedImage image, double scoreThreshold) throws Exception { List> outputs = null; ArrayList detectedObjectsInImage = new ArrayList(); - + //int count = 0; makeImageTensor(image); try (Tensor input = makeImageTensor(image)) { outputs = @@ -82,10 +82,12 @@ public class ObjectDetector { for (int i = 0; i < scores.length; ++i) { if (scores[i] > scoreThreshold) { + //count++; detectedObjectsInImage.add(new DetectedObject(scores[i], classes[i], boxes[i])); } } } + // return count; return detectedObjectsInImage; } diff --git a/src/ObjectTracker.java b/src/ObjectTracker.java index 1465b3d..a69745c 100644 --- a/src/ObjectTracker.java +++ b/src/ObjectTracker.java @@ -12,7 +12,7 @@ public class ObjectTracker { public ObjectTracker(BufferedImage image, Rect2d boundingBox) { this.objectTracker = TrackerBoosting.create(); - this.objectTracker.init(bufferedImageTomat(image), boundingBox); + this.objectTracker.init(bufferedImageToMat(image), boundingBox); this.numberOfFramesLostFor = 0; } diff --git a/src/main.java b/src/main.java index 4334070..46aaf8f 100644 --- a/src/main.java +++ b/src/main.java @@ -15,7 +15,7 @@ public class main { System.load("/usr/local/cuda/lib64/libcudart.so.9.0"); System.load("/usr/local/cuda/lib64/libcufft.so.9.0"); System.load("/usr/local/cuda/lib64/libcurand.so.9.0"); - //System.loadLibrary(Core.NATIVE_LIBRARY_NAME); + System.loadLibrary(Core.NATIVE_LIBRARY_NAME); System.load("/home/dpapp/jni/libtensorflow_jni.so"); IronMiner ironMiner = new IronMiner(); diff --git a/target/classes/IronMiner.class b/target/classes/IronMiner.class index 190b5da3a034bc2949e1e4154c1a5845a86dd68b..2cfed24bfb94affe95e51b98784b485a6d0c2222 100644 GIT binary patch delta 1898 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 PCRT9;3yjqI+tB_6ELJ`R delta 159 zcmcb>ai5**)W2Q(7#J8#7_2vPIWjSGFz8L*%A_e}z{tSqS(KmWo0*qd#KoY`zzHIZ zc^FJ4|6tm|+0DQNgbWPElXo&J$_eT2U{Ko4pdY!N!O%y08-vkCpcE4W7m(Cq;F|o8 vS=v~bL5)F_L61R&|FlVq}U<5)-ux={=AIuxh