You are on page 1of 14

INTERNSHIP

PORTFOLIO

By

Jonathan Leewin
Grade 12 Beethoven

BINUS SCHOOL Serpong


AY 2022 – 2023
Table of Contents
Acceptance Letter ................................................................................................... 3
Attendance Log Sheet ............................................................................................. 4
Company Profile ..................................................................................................... 5
Supervisor Profile ................................................................................................... 6
Reflection .............................................................................................................. 7
Documentation ..................................................................................................... 10
Documentation of code ......................................................................................... 11
Anecdotal Report from the Supervisor .................................................................... 14
Acceptance Letter
Attendance Log Sheet
Company Profile
Zioncom Technology is an IT network and security company that was founded in 2006
by Daniel Onggoputra and Yusuf Chandra. Our company specializes in providing
cutting-edge products and solutions to meet the unique needs of our customers. We
are committed to delivering the latest technology to enhance productivity and provide
added value to our clients.

At Zioncom Technology, we provide accurate solutions based on information technology


to maximize productivity and provide added value towards our customers. Our mission
is to become a trustworthy partner in providing solutions and services towards
customers in the ever-developed digital era. Our vision is to be the leading provider of
IT network and security solutions in the industry.

Products & Services:

We offer a wide range of products and services that cater to every type of client. Our
displays come in various sizes and purposes, including digital signage, interactive
boards, LCD, ultra-narrow bezel, LED, and flat panels, perfect for monitoring, movie
nights, and presentations. Our digital signage is perfect for retail and offices, and we
can showcase up to 13 types of media, including images, videos, and audio. We also
offer camera surveillance, network security, and thermal cameras that are ideal for
factories, chemical plants, and oil and gas stations.

Camera Surveillance:

Our camera surveillance products are designed to monitor all your assets or places that
need constant surveillance. From a single room to an outdoor area, our camera covers
all spaces and situations. Our products are great for all security purposes, and we offer
human and vehicle classification, advanced security capabilities, panoramic coverage,
and target tracking algorithm. We also offer PTZ Dome cameras, great for open areas,
with up to 4k HD resolution, optical image stabilization, and face capture. Our
explosion-proof and anti-corrosion cameras are perfect for places with extreme
environments, and we offer optional underwater capabilities.

Network Security:

Our network security products are designed to provide advanced security capabilities
for various scenarios. We offer multiple algorithms for a variety of situations, and our
products come with an optional deep learning ability, including heat map, intersection
flow analysis, and people counting. We also offer network security solutions for all
types of environments, including harsh conditions.

Thermal Cameras:

Our thermal cameras are designed to detect infrared emitted by heat, making them
perfect for security and thermography purposes. Our products provide all-weather
deterrent and work from -40C to 60C. Our thermal cameras also offer continuous and
consistent temperature data, making them ideal for factories, chemical plants, and oil
and gas stations.

At Zioncom Technology, we are committed to delivering high-quality products and


services that exceed our customer's expectations. Contact us today to learn more about
our IT network and security solutions.
Supervisor Profile
Name: Joshua Oswari
Position: Project Manager
Company: PT. Zioncom Technology

Joshua Oswari is an experienced Project Manager at PT. Zioncom Technology, a leading


technology company. With a Bachelor of Science in Statistics and Probability from the
University of California San Diego, Joshua has developed a strong expertise in data
analysis and statistical inference. His passion for numbers and data has driven him to
pursue a career as a Statistician, where he aims to use his knowledge to elucidate
numerical data in the real world.

As a Project Manager at PT. Zioncom Technology, Joshua is responsible for overseeing


various projects and ensuring they are completed on time and within budget. He has a
proven track record of managing complex projects and teams, with a focus on
collaboration and effective communication. Joshua is highly organized, detail-oriented,
and has a natural ability to motivate and inspire his team to achieve their goals.

Joshua's technical knowledge and analytical skills have been instrumental in driving the
success of the projects he has managed. He is adept at using data to identify trends
and patterns, and to develop insights that inform business decisions. With his expertise
in statistical analysis, Joshua has been able to optimize workflows, improve processes,
and deliver innovative solutions to complex business problems.

You can find Joshua's LinkedIn profile here:


https://www.linkedin.com/in/joshuaoswari/. Overall, Joshua Oswari is a highly
competent and driven Project Manager who has the skills and knowledge needed to
lead successful projects in the technology industry. He is an excellent communicator, a
natural problem-solver, and a valuable asset to any team he works with.
Reflection
Documentation
Photos:

Fig 1.1 Fig 1.2

Explanation:

Figure 1.1: Meeting discussing machine learning model for camera-based people
detection
In the meeting room, several individuals are gathered around a conference table,
discussing the development of a machine learning model that can accurately detect the
number of people in an ATM room using a camera. Notes and diagrams related to the
discussion are visible on a whiteboard in the background, with one note specifically
mentioning the training of the ML model. The model would send data to a DVR and
trigger an alarm if a user-defined threshold is exceeded. An Arduino device is also
mentioned to receive signals from the DVR and activate the alarm. The participants are
actively engaged in the discussion, taking notes and pointing to various parts of the
whiteboard.

Figure 1.2, on the other hand, depicts a digital video recorder (DVR). A DVR is a device
that records video signals from cameras, allowing users to record, store, and playback
videos. The DVR is connected to a camera, which captures video footage that is stored
on the DVR's hard drive. The DVR also allows users to view live footage from the
camera and access recorded footage remotely.

The figure highlights the importance of DVRs in surveillance systems. DVRs are an
essential component of surveillance systems, allowing users to monitor and record
video footage for security purposes. DVRs are used in a variety of settings, including
homes, businesses, and public places, to deter criminal activity and ensure safety. The
use of DVRs has become increasingly popular in recent years, with advancements in
technology making them more affordable and accessible to the general public.
Documentation of code

The first part of the code imports the required libraries: OpenCV, datetime, imutils,
numpy, and a custom CentroidTracker class. It then sets the paths to the pre-trained
model files and reads the model into memory using the cv2.dnn.readNetFromCaffe()
function.
Code Block 1:

Next, the code defines a list of object classes that the model can detect. It also creates
an instance of the CentroidTracker class, which is used to track the detected objects.
Code Block 2:

This function performs non-maximum suppression on the bounding boxes of the


detected objects. Non-maximum suppression is used to remove overlapping bounding
boxes and keep only the ones that have the highest confidence. The function takes two
arguments: boxes - a numpy array of bounding boxes and overlapThresh - the overlap
threshold for two bounding boxes to be considered as the same object.
Code Block 3:
This line creates a VideoCapture object and initializes it to read the video file named
test_video.mp4. This object will be used to read the frames from the video file.
Code Block 4:

This snippet initializes variables used for calculating the FPS of the video.
fps_start_time is set to the current time using the datetime module. fps and
total_frames are initialized to 0.
Code Block 5:

This snippet reads each frame from the video using the VideoCapture object created
earlier. The cap.read() method returns a tuple containing a boolean value ret indicating
if the frame was successfully read and the actual frame data frame. The frame data is
then resized to a width of 600 pixels using the imutils.resize() function. The
total_frames variable is incremented for each frame read.
Code Block 6:

This snippet gets the height and width of the frame and creates a blob from the image
using cv2.dnn.blobFromImage(). The blob is then passed to the object detection model
detector to detect objects in the frame. The detected objects are stored in
person_detections and the bounding boxes of the detected objects are stored in rects.
Code Block 7:

This snippet converts the rects list to a numpy array boundingboxes and applies non-
maximum suppression to remove redundant bounding boxes. The overlapping
bounding boxes are merged to form a single bounding box.
Code Block 8:
The code block is responsible for updating the bounding boxes and drawing them on
the frame. The tracker object is used to update the rects, and the objects variable is a
dictionary that stores the object IDs and the corresponding bounding boxes. The for
loop iterates over the dictionary items and retrieves the bounding box coordinates (x1,
y1, x2, y2) for each object. These coordinates are then used to draw a rectangle
around the object and display its ID above the rectangle.
Code Block 9:

This code block calculates the frames per second (FPS) of the video processing.
fps_start_time is the time at which the processing starts, and fps_end_time is the time
at which the processing ends. The difference between these two times gives the total
time taken for processing, which is stored in time_diff. If the time_diff is 0 seconds, the
fps value is set to 0.0. Otherwise, the fps value is calculated by dividing the total
frames processed by the time taken for processing. Finally, the fps value is displayed
on the frame using cv2.putText.
Code Block 10:

This code block displays the processed video frames on the screen and waits for a key
press event. The cv2.imshow function takes two arguments: the name of the window
and the frame to be displayed. The cv2.waitKey function waits for a specified time (in
milliseconds) for a key press event. If the key pressed is the letter 'q', the break
statement is executed, which stops the while loop and exits the program. This allows
the user to quit the application by pressing the 'q' key.
Code Block 11:
Anecdotal Report from the Supervisor

You might also like