Add PoseNet presets and example (#124)
* PoseNet presets and example * Update description
This commit is contained in:
44
orx-runway/src/demo/kotlin/PoseNet01.kt
Normal file
44
orx-runway/src/demo/kotlin/PoseNet01.kt
Normal 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -66,3 +66,13 @@ class DeOldifyResponse(val image: String)
|
||||
|
||||
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>)
|
||||
|
||||
// -- 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>)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user