Add PoseNet presets and example (#124)

* PoseNet presets and example

* Update description
This commit is contained in:
Boyd
2020-06-10 20:53:24 +02:00
committed by GitHub
parent 73585d84fa
commit 7a2c754188
2 changed files with 55 additions and 1 deletions

View File

@@ -0,0 +1,44 @@
import org.openrndr.application
import org.openrndr.color.ColorRGBa
import org.openrndr.draw.isolatedWithTarget
import org.openrndr.draw.loadImage
import org.openrndr.draw.renderTarget
import org.openrndr.extra.runway.*
/**
* This demonstrates the body estimation model of PoseNet
* This example requires a `runway/PoseNet` model active in Runway.
*/
fun main() = application {
configure {
width = 512
height = 512
}
program {
val rt = renderTarget(512, 512) {
colorBuffer()
}
val image = loadImage("demo-data/images/peopleCity01.jpg")
drawer.isolatedWithTarget(rt) {
drawer.ortho(rt)
drawer.clear(ColorRGBa.BLACK)
drawer.image(image, (rt.width - image.width) / 2.0, (rt.height - image.height) / 2.0)
}
extend {
val result: PoseNetResponse = runwayQuery("http://localhost:8000/query", PoseNetRequest(rt.colorBuffer(0).toData()))
val poses = result.poses
val scores = result.scores
drawer.image(image, 0.0, 0.0, 512.0, 512.0)
poses.forEach { poses ->
poses.forEach { pose ->
drawer.circle(pose[0]*512.0, pose[1]*512.0, 10.0)
}
}
}
}
}

View File

@@ -65,4 +65,14 @@ class DeOldifyResponse(val image: String)
// -- DenseCap
class DenseCapRequest(val image: String, @SerializedName("max_detections") val maxDetections: Int = 10)
class DenseCapResponse(val bboxes: List<List<Double>>, val classes: List<String>, val scores: List<Double>)
class DenseCapResponse(val bboxes: List<List<Double>>, val classes: List<String>, val scores: List<Double>)
// -- PoseNet
class PoseNetRequest(
val image: String,
@SerializedName("estimationType") val estimationType: String = "Multi Pose",
@SerializedName("maxPoseDetections") val maxPoseDetections: Int = 5,
@SerializedName("scoreThreshold") val scoreThreshold: Double = 0.25
)
class PoseNetResponse(val poses: List<List<List<Double>>>, val scores: List<Double>)