# Designing a Collaborative Virtual Conference Application: Challenges, Requirements and Guidelines
## 6 Design Guidelines and Recommendations
### Proposed Architecture System Design  
The overall architecture of the proposed natural and affective virtual conference application is illustrated in Figure 10. The proposed system is made up of both local and remote clients. A server is also included in the system to connect multiple local and remote clients. For the local client, the web camera captures the video as an input for the virtual conference application. For privacy and data management, the local user can control the input through the input control layer by enabling, switching, and disabling. The video source data is then used to track facial expressions and hand gestures through image preprocessing. Once the facial expressions and gestures have been detected, the system then identifies the correct actions to produce based on the expressions and gestures input, which is done through the affect and action module, respectively. The affect module determines the users' facial expression, while the action module determines the users' gestures. The affect and action data are packaged and ready to be sent to the server through a real time network layer. The real time network layer connects to a cloud server and then transfers the affect and action data from the local client to the server. The server then distributes the affect and action data to all remote clients that connect to it. At the remote client, the affect and action data received from the server are then interpreted and sent to the avatar and action controller, respectively. The avatar controller  
Figure 10: The proposed natural and affective virtual conference application. manages and displays the avatar animation by showing real-time emotion based on the affect data received from the local client. The action controller displays actions such as the raising of one's hand, waving one's hand, and signing a thumbs up. The actions are hovered on the avatar based on the action data received from the local client. The avatar and actions are then displayed on the user interface. Finally, remote users can see other users' facial expressions and actions through the avatar without revealing their own faces to others. The avatar partially substitutes the need for a public video display while still allowing users to share affects and actions. Figure 11 depicts the architecture flow process of the proposed affective virtual conference application for remote collaboration. Figure 11a shows the flow process for determining emotion based on the facial expressions of users. To detect a facial expression, a face tracking algorithm based on previous research must be implemented [72]. Similar to the previous flow process, a frame needs to be captured and image preprocessing must be performed. The image preprocessing process includes converting an image to grayscale and removing the background. Then, the image must be adjusted through pose correction to straighten out the face. If a face is detected, the image extracts the facial features of the face into three main cues: the eyes, face, and eyebrows. If no errors are found, the data from the feature extractions are used in the Support Vector Machine (SVM) to classify the facial expression. Using the provided training dataset, the system helps to classify different types of emotion such as happy, sad, angry, neutral, excited, curious, and more. This information is then used by the avatar module to help the avatar express emotion. However, only one expression is displayed at a time. On the other hand, Figure 11b depicts the flow process of providing action based on hand gestures provided by users. For hand tracking, the proposed virtual conference application for remote collaboration makes use of some of the techniques developed by a previous study [73]. The flow starts by capturing a frame from a video source; then, the frame image is processed by converting it to grayscale, performing background subtraction, Gaussian blurring, and image thresholding. After that, the system extracts a contour and convex hull from the processed image.