Do you want to build a virtual proctoring solution in your app?
Stick around. I'll show you the services that you can use to build this out quickly.
Today's episode comes from Raj.
Raj is an engineering student in Pune, India.
Raj wants to build an app that detects if a student is cheating on an exam
and notifies the professor if a student might be cheating.
Let's hear from Raj.
Hi, I'm Raj. I'm a computer engineering junior at VIT Pune, India.
When the pandemic started,
there was no easy way for common teachers to conduct remote examinations
and be sure that the integrity of the exams is maintained.
I wanted to build a platform for remote examinations
which will allow teachers, professors and educators at all levels
to easily organize cheating-free remote examinations
and provide them with an easy to use platform which they can rely on.
At the same time,
provide the students with a platform on which they can trust.
Awesome, Raj. Let's dive in.
The test taker will use a laptop, a camera and a microphone.
At the beginning of an exam,
the candidate will have to allow the app to access their camera and microphone.
The test seekers video and audio will be sent to the cloud for analysis
through a secure connection.
The video stream will be captured by Amazon Kinesis Video Streams.
Kinesis Video Streams allows you to process and store media streams
for playback, analytics, and machine learning.
When streaming videos to Kinesis Video Streams,
there will be a producer and a consumer.
A producer is any source that puts data into a Kinesis Video Stream.
A producer can be any video generating device
such as a smartphone, camera, or a laptop camera.
In Raj's case,
the test takers camera from their laptop will stream their video to Kinesis Video Streams.
Once the video is streamed to Kinesis Video Streams,
the consumers get the data such as fragments and frames
to view, process, or analyze it.
You can write backend applications that consume and process data
in Kinesis Video Streams in real time
or after the data is durably stored and time indexed.
The video stream will be consumed by Amazon Rekognition Video.
Rekognition Video is a machine learning powered video analysis service
that can be used to provide highly accurate facial analysis
and facial search capabilities.
Amazon Rekognition Video will analyze your live video streams in real time
to detect and search for faces.
By providing a stream from Amazon Kinesis Video Streams
as an input to Rekognition Video,
you can search through faces against a repository of your own images
with very low latency.
Rekognition Video returns a confidence score between 0 and 100
that you can use to determine if the Proctor should be notified
to review the playback of the incident in which the test taker might have cheated.
For each analyzed frame,
Amazon Rekognition Video outputs a JSON record to a Kinesis Data Stream.
The JSON record includes information about the streaming video,
the status for the analyzed frame
and information about faces that are recognized in the frame.
AWS Lambda functions will process the results
that recognition video sends to the Kinesis Data Stream.
Lambda allows you to run code without managing servers.
You'll want to run a lot of simulations of cheating and not cheating in an exam
in order to determine other behaviors or metrics
that can increase your applications accuracy.
You can create a workflow in AWS Step Functions
based on the confidence score that recognition returns.
Step Functions is a lowcode visual workflow service used to orchestrate AWS services,
automate business processes and build serverless applications.
With Step Functions, you can create branching logic
to determine what your application should do in a scenario.
Let's say the confidence score is 70.
Raj might not think that's high enough to assume
that the test taker is cheating by ending the exam,
but if Raj finds it suspicious,
then Raj would use Amazon's Simple Notification Service
to notify the Proctor of suspicious test taking activity.
Simple Notification Service is a fully managed messaging service
for both application to application and application to person communication.
The Proctor would then review the replay of the test taker taking the exam
to determine if the test taker cheated.
If Raj thinks that a score above 90 means
there is no doubt that this test taker is cheating,
then the application could trigger an AWS Lambda Function to stop the exam.
At the same time, a push notification will be sent to the Proctor
through Simple Notification Service to inform the Proctor of the candidate that cheated.
I know, I covered a lot.
Time for a recap.
Stream video using Amazon Kinesis Video Streams.
Use Amazon Rekognition Video to determine if someone is cheating.
Use AWS Step Functions to build workflows for Lambda Functions.
Notify the instructor using Amazon's Simple Notification Service.
That's how you can build a virtual proctoring solution.
Make sure you check out the links below the video.
It doesn't matter when you start, as long as you just get started.
Thanks for hanging out with me. See you soon.