Chat view modification based on user identification or user movement

By identifying and adjusting authorized and unauthorized participants in video chat sessions, the problems of user consistency and spatial inconsistency are solved, achieving identity concealment and cost optimization.

CN119999180BActive Publication Date: 2026-06-23GOOGLE LLC

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
GOOGLE LLC
Filing Date
2023-08-18
Publication Date
2026-06-23

AI Technical Summary

Technical Problem

Existing video chat systems cannot effectively solve the problems of user inconsistency and spatial inconsistency, such as the display and position adjustment of video chat participants and non-participants in the chat view.

Method used

The computing device identifies authorized and unauthorized participants in a video chat session, and renders and hides corresponding visual data in the chat view based on the identification results, defines chat areas to indicate reference positions, and adjusts the display of visual data according to the movement of participants.

Benefits of technology

It achieves identity concealment for unauthorized participants, reduces computational and bandwidth costs, lowers latency, and allows authorized participants to be aware of the presence of unauthorized participants in order to react appropriately.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119999180B_ABST
    Figure CN119999180B_ABST
Patent Text Reader

Abstract

According to embodiments, a computing device can: identify, in a chat view associated with a video chat session, a first authorized participant and a second authorized participant of the video chat session; render, in the chat view, first visual data indicating the first authorized participant and second visual data indicating the second authorized participant, respectively, based at least in part on identifying the first authorized participant and the second authorized participant; define, in the chat view, a chat region indicating a reference location of the first authorized participant; determine that the first authorized participant moves outside of the chat region; and / or hide, in the chat view, the first visual data indicating the first authorized participant based at least in part on determining that the first authorized participant moves outside of the chat region.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority requirements

[0002] This application is based on and claims priority to U.S. Application 17 / 944,893, filed on September 14, 2022, which is incorporated herein by reference. Technical Field

[0003] This disclosure generally relates to characterizing and modifying visual data in a chat view associated with a video chat session. More specifically, this disclosure relates to modifying visual data in a chat view associated with a video chat session based at least in part on user identification and / or user movement. Background Technology

[0004] In some existing video chat systems (e.g., video conferencing systems), users participating in a video chat session (e.g., video conference) can modify certain visual data (e.g., images, videos) in the chat view associated with the video chat session. For example, in such systems, a user can change the background of the chat view so that only the user's visual data (e.g., images, videos) is rendered in the foreground of the chat view. That is, for example, a user can change the visual data (e.g., images, videos) representing other entities (e.g., objects, people) rendered in the background of the chat view so that only the user's visual data (e.g., images, videos) is rendered in the foreground of the chat view.

[0005] In some existing video chat systems, users can blur and / or reduce the resolution of visual data representing other entities (e.g., images, videos) to hide (e.g., conceal, mask) these entities in the background of the chat view during a video chat session. In other existing video chat systems, users can apply predefined backgrounds (e.g., images, animations) to the chat view to hide other entities during a video chat session, while rendering visual data representing the user (e.g., images, videos) in the foreground of the chat view. The problem with such video chat systems is that they cannot resolve user inconsistencies (e.g., video chat participants versus non-participants) and spatial inconsistencies (e.g., the repositioning and / or relocation of video chat participants within the chat view). Summary of the Invention

[0006] Various aspects and advantages of embodiments of this disclosure will be set forth in part in the following description, or may be learned from the description or by practice of the embodiments.

[0007] According to one example embodiment, a computing device may include: one or more processors; and one or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the computing device to perform operations. The operations may include: identifying a first authorized participant and a second authorized participant in a chat view associated with a video chat session. The operations may further include: rendering, at least in part, first visual data indicating the first authorized participant and second visual data indicating the second authorized participant in the chat view, respectively, based on the identification of the first authorized participant and the second authorized participant. The operations may further include: defining a chat area in the chat view indicating a reference position of the first authorized participant. The operations may further include: determining that the first authorized participant has moved out of the chat area. The operations may further include: hiding the first visual data indicating the first authorized participant in the chat view, at least in part, based on the determination that the first authorized participant has moved out of the chat area.

[0008] According to another example embodiment, a computer-implemented method for modifying visual data in a chat view associated with a video chat session may include: identifying authorized participants of the video chat session in the chat view by a computing device including one or more processors. The computer-implemented method may further include: rendering first visual data indicating authorized participants in the chat view by the computing device, at least in part based on the identification of authorized participants. The computer-implemented method may further include: detecting unauthorized participants of the video chat session in the chat view by the computing device. The computer-implemented method may further include: hiding second visual data indicating unauthorized participants in the chat view by the computing device, at least in part based on the detection of unauthorized participants.

[0009] According to another example embodiment, one or more computer-readable media may store instructions that, when executed by one or more processors of a computing device, cause the computing device to perform operations. The operations may include: defining a chat area in a chat view associated with a video chat session, the chat area indicating the reference position of a participant in the video chat session. The operations may further include: determining that a participant has moved outside the chat area. The operations may further include: hiding visual data indicating the participant in the chat view, at least in part based on determining that the participant has moved outside the chat area.

[0010] These and other features, aspects, and advantages of the various embodiments of this disclosure will be better understood with reference to the following description and the appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments of the disclosure and, together with the description, serve to explain the relevant principles. Attached Figure Description

[0011] Referring to the accompanying drawings, a detailed discussion of embodiments is set forth in this specification for those skilled in the art, in which:

[0012] Figure 1 A block diagram of an example non-limiting apparatus according to one or more exemplary embodiments of the present disclosure is shown;

[0013] Figure 2 A block diagram of an example non-limiting video chat environment according to one or more example embodiments of the present disclosure is shown;

[0014] Figure 3A , Figure 3B , Figure 3C and Figure 3D Each of the above illustrates an example non-limiting chat view diagram according to one or more example embodiments of the present disclosure;

[0015] Figure 4 Block diagrams illustrating example non-limiting processes and data flows according to one or more exemplary embodiments of the present disclosure are shown; and

[0016] Figure 5 , Figure 6 , Figure 7 and Figure 8 Each illustration shows a non-limiting computer implementation of a method according to one or more exemplary embodiments of the present disclosure.

[0017] The repeated use of reference numerals and / or numbers in this specification and / or accompanying drawings is intended to indicate the same or similar features, elements, or operations of this disclosure. For the sake of brevity, repeated descriptions of reference numerals and / or numbers in this specification have been omitted. Detailed Implementation

[0018] Example aspects of this disclosure involve modifying visual data (e.g., images, videos) in a chat view associated with a video chat session based at least in part on (e.g., in response to) user identification and / or user movement. More specifically, example embodiments of this disclosure involve modifying visual data (e.g., images, videos) used to represent a user in a chat view associated with a video chat session based at least in part on: whether the user is an authorized participant in the video chat session (e.g., organizer, host, invitee) or an unauthorized participant (e.g., bystander, person in the background); and / or whether the user moves away from or returns to a defined chat area (e.g., a defined reference location) during the video chat session.

[0019] In one embodiment, the computing device can identify authorized participants in a video chat session within a chat view associated with the video chat session. In this embodiment, the computing device can also detect unauthorized participants in the video chat session within the chat view. Furthermore, in this embodiment, the computing device can render visual data indicating authorized participants in the chat view, and hide other visual data indicating unauthorized participants, at least in part, based on the identification of authorized participants and the detection of unauthorized participants.

[0020] In another embodiment, the computing device may define a chat area in a chat view associated with a video chat session, the chat area indicating the reference position of a participant (e.g., an authorized participant) in the video chat session. In this embodiment, the computing device may also determine that a participant has moved out of the chat area, and based at least in part on the determination that a participant has moved out of the chat area, hide visual data indicating the participant in the chat view.

[0021] In another embodiment, the computing device can identify multiple authorized participants in a chat view associated with a video chat session, and render visual data in the chat view indicating each authorized participant, at least in part, based on the identification of the authorized participants. In this embodiment, the computing device can also define a chat area in the chat view indicating the reference position of one of the authorized participants. In this embodiment, the computing device can also determine if an authorized participant has moved outside such a chat area, and hide the visual data indicating the authorized participant in the chat view, at least in part, based on the determination that the authorized participant has moved outside the chat area.

[0022] The exemplary aspects of this disclosure provide several technical effects, benefits, and / or improvements of computing technology. For example, in exemplary embodiments, by hiding visual data, such as images and / or videos that may indicate and / or represent unauthorized participants (e.g., bystanders), in the chat view of a video chat application used to implement a video chat session, the computing device can thereby hide the identity of unauthorized participants from authorized participants in the video chat session (e.g., authorized participants using such computing devices or another computing device participating in the video chat session). Additionally, in these or other exemplary embodiments, by hiding such visual data of unauthorized participants in the chat view as described above, the computing device can also thereby hide the identity of another unauthorized participant who may be viewing (e.g., with or without permission) the video chat session through the chat view rendered on the display, screen, and / or monitor of the computing device used by the authorized participant in the video chat session.

[0023] Furthermore, in at least one embodiment, the computing device can provide a notification indicating that an unauthorized participant and / or the presence of such an unauthorized participant has been detected in a chat view associated with the video chat session; and / or that visual data indicating the unauthorized participant is hidden in the chat view. In this embodiment, the computing device can thereby allow all authorized participants to be notified and / or aware of the presence of an unauthorized participant. For example, in one embodiment, the computing device can provide such a notification to authorized participants using the computing device to participate in the video chat session. In another embodiment, the computing device can (e.g., via the Internet) provide such a notification to another computing device (e.g., a laptop computer, smartphone, tablet computer) being used by another authorized participant to participate in the video chat session, allowing the other computing device to provide notification to another authorized participant. In some embodiments, by providing such a notification to authorized participants in the video chat session, the computing device can thereby facilitate notification to such authorized participants of unauthorized participants, wherein any authorized participant can modify content contributed during the video chat session as needed based on the presence of the unauthorized participant.

[0024] Additionally, the computing device according to the example embodiments described herein can apply a relatively low resolution to visual data corresponding to and / or representing an unauthorized participant appearing in the chat view to hide such visual data in the chat view. In these embodiments, by applying a relatively low resolution to such visual data corresponding to and / or representing an unauthorized participant, the computing device can thereby reduce computational and / or bandwidth costs, as well as reduce latency (e.g., delayed images, videos) associated with one or more computing resources used to facilitate video chat sessions (e.g., video conferencing). For example, by applying a relatively low resolution to visual data corresponding to and / or representing an unauthorized participant, the computing device according to the example embodiments can thereby reduce computational and / or bandwidth costs, as well as reduce latency (e.g., delayed images, videos) associated with generating, managing (e.g., storing) and / or communicating such visual data with relatively low resolution (e.g., compared to the costs and / or latency associated with generating, managing (e.g., storing) and / or communicating visual data with relatively high resolution). For example, according to the exemplary embodiments described herein, a computing device according to the exemplary embodiments may thereby reduce computing and / or bandwidth costs, as well as reduce latency associated with one or more of, for example, processors, memory devices, encoders (e.g., video encoders), decoders (e.g., video decoders), wired and / or wireless network interface components, wired and / or wireless network communication components, displays, monitors, screens, and / or other computing resources associated with the computing device, and / or other computing devices that can be used to facilitate video chat sessions (e.g., video conferencing).

[0025] As cited herein, the term "video chat session" describes any type of video call, video conference, and / or web conference (e.g., telepresence video conferencing, integrated video conferencing, desktop video conferencing, service-based video conferencing). As cited herein, the term "chat view" describes a location within the video chat user interface of a video chat application where visual data, such as images and / or videos of, for viewing, is rendered.

[0026] As cited herein, the term "authorized participant" in a video chat session describes a user who is an expected participant, attendee, and / or invitee of the video chat session (e.g., a recipient of an invitation or request to join the video chat session) and / or a user who serves a function or role in the video chat session (e.g., an organizer, moderator, and / or initiator of the video chat session). As cited herein, the term "unauthorized participant" in a video chat session describes a user who is not an expected participant or attendee of the video chat session (e.g., a bystander located near an authorized participant in the video chat session, causing the bystander to appear in the image and / or video rendered in the chat view associated with the video chat session).

[0027] As cited herein, the term "chat area" describes an area in the chat view that corresponds to and / or indicates a physical location in the real world where the participant is located. In the example embodiments described herein, a participant's chat area may correspond to and / or indicate a reference location and / or reference orientation of the participant in the physical real world. As cited herein, the terms "reference location" and / or "reference orientation" of the participant describe the participant's base location and / or base orientation, respectively.

[0028] As referenced herein, the term “entity” refers to a human, user, end-user, consumer, computing device and / or program (e.g., processor, computing hardware and / or software, application, etc.), intelligent agent, machine learning (ML) and / or artificial intelligence (AI) algorithm, model, system and / or application, and / or another type of entity that can implement the exemplary embodiments of this disclosure as described herein, illustrated in the accompanying drawings and / or included in the appended claims and / or facilitate the implementation of such exemplary embodiments. As referenced herein, the terms “includes” and “including” are intended to indicate inclusion in a manner similar to the term “comprising.” As referenced herein, the terms “or” and “and / or” are generally intended to be inclusive, that is, “A or B” or “A and / or B” are each intended to mean “A or B or both”.

[0029] As cited herein, the terms “first,” “second,” “third,” etc., are used interchangeably to distinguish one component or entity from another and are not intended to indicate the location, functionality, or importance of an individual component or entity. As cited herein, the terms “couple,” “couples,” “coupled,” and / or “coupling” refer to chemical coupling (e.g., chemical bonding), communication coupling, electrical and / or electromagnetic coupling (e.g., capacitive coupling, inductive coupling, direct and / or connection coupling, etc.), mechanical coupling, operative coupling, optical coupling, and / or physical coupling.

[0030] As used throughout this specification, the appended claims, and / or the drawings, approximate language is applied to modify any quantitative representation that may vary without altering the fundamental function it relates to. Therefore, values ​​modified by one or more terms such as “about,” “approximately,” and / or “substantially” are not limited to the specified precise value. In some embodiments, approximate language may correspond to the precision of the instrument used to measure the value. For example, approximate language may refer to a range of 10%. For example, as used herein, one or more terms combining a numerical value, such as “about,” “approximately,” and / or “substantially,” may refer to within 10% of the indicated numerical value.

[0031] According to exemplary embodiments of this disclosure, computing devices, such as those referred to below, are... Figure 1 and Figure 2 The computing device 110 described in the example embodiments depicted herein can facilitate modifications to visual data (e.g., images, videos) in a chat view associated with a video chat session, at least in part based on (e.g., in response to) user identification and / or user movement. Such a computing device according to the example embodiments described herein may include, (e.g., communicatively, operatively) coupled to one or more processors and / or one or more non-transitory computer-readable storage media, and / or otherwise associated with one or more processors and / or one or more non-transitory computer-readable storage media. In these or other embodiments, one or more non-transitory computer-readable storage media may store instructions that, when executed by a processor, can cause the computing device to perform one or more operations described herein to facilitate modifications to visual data (e.g., images, videos) in a chat view associated with a video chat session, at least in part based on (e.g., in response to) user identification and / or user movement.

[0032] In some embodiments, the computing device described above (e.g., computing device 110) may further include, (e.g., communicatively, operatively) coupled to, and / or otherwise associated with, a camera capable of capturing image and / or video data (e.g., images, videos) of a video chat session that can be rendered (e.g., by the computing device or another computing device) in a chat view of the video chat user interface. In some embodiments, the computing device may further include, (e.g., communicatively, operatively) coupled to, and / or otherwise associated with, a microphone and / or a speaker, wherein the microphone can capture audio data of a video chat session that can be (e.g., by the computing device) played aloud using the speaker.

[0033] According to exemplary embodiments of this disclosure, in order to facilitate modifications to visual data (e.g., images, videos) in a chat view associated with a video chat session based at least in part on (e.g., in response to) user identification, in one embodiment, the computing device (e.g., computing device 110) may: identify authorized participants in the video chat session in the chat view associated with the video chat session; and / or detect unauthorized participants in the video chat session in the chat view. In this embodiment or another embodiment, the computing device may also: render first visual data (e.g., images, videos) indicating authorized participants in the chat view based at least in part on (e.g., in response to) identifying authorized participants; and / or hide second visual data (e.g., images, videos) indicating unauthorized participants in the chat view based at least in part on (e.g., in response to) detecting unauthorized participants.

[0034] To facilitate the identification of authorized participants appearing in the chat view, a computing device according to the example embodiments described herein may use a facial recognition module to perform a facial calibration process to authenticate authorized participants as participants in a video chat session. For example, to perform such a facial calibration process, a computing device according to the example embodiments of this disclosure may use a camera to capture image and / or video data (e.g., images, videos) of authorized participants in the video chat session. In these or other embodiments, the computing device may also implement a facial recognition module, such as, for example, machine learning and / or facial matching algorithms and / or models, which may use such captured image and / or video data to generate facial embeddings and / or feature vectors that can represent, correspond to, and / or indicate authorized participants.

[0035] In one embodiment, the computing device may perform the facial calibration process described above after the installation and / or configuration (e.g., settings) of a video chat application that can run (e.g., be executed) on the computing device. In another embodiment, the computing device may perform the facial calibration process after the initiation and / or initiation of a video chat session (e.g., at the start of a video chat session). In yet another embodiment, the computing device may perform the facial calibration process during a video chat session (e.g., when an authorized participant joins an already ongoing video chat session).

[0036] In some embodiments, the computing device may (e.g., temporarily or permanently in a database and / or memory) store and / or subsequently reference (e.g., access) the aforementioned facial embeddings and / or feature vectors corresponding to authorized participants to authenticate and / or identify the authorized participants as intended participants and / or invitees in a video chat session. For example, in these or other embodiments, after completing the aforementioned facial calibration process, when the computing device detects an entity (e.g., a human) appearing in the chat view, the computing device may (e.g., via the aforementioned facial recognition module) generate facial embeddings and / or feature vectors that can represent, correspond to, and / or indicate the entity. In these or other embodiments, the computing device may also (e.g., via the aforementioned facial recognition module) compare such facial embeddings and / or feature vectors corresponding to the entity with facial embeddings and / or feature vectors corresponding to the authorized participants. In these or other embodiments, if the computing device determines that the facial embeddings and / or feature vectors corresponding to the entity match the facial embeddings and / or feature vectors corresponding to the authorized participants, the computing device may thereby determine that the entity is an authorized participant in the video chat session.

[0037] To detect unauthorized participants appearing in the chat view, the computing device according to the example embodiments described herein can implement the aforementioned facial recognition module (e.g., machine learning and / or facial matching algorithms and / or models) and / or utilize the aforementioned facial embeddings and / or feature vectors corresponding to authorized participants. For example, in these or other embodiments, after completing the aforementioned facial calibration process, when the computing device detects an entity (e.g., a human) appearing in the chat view, the computing device can (e.g., via the aforementioned facial recognition module) generate facial embeddings and / or feature vectors that can represent, correspond to, and / or indicate the entity. In these or other embodiments, the computing device can also (e.g., via the aforementioned facial recognition module) compare such facial embeddings and / or feature vectors corresponding to the entity with facial embeddings and / or feature vectors corresponding to authorized participants. In these or other embodiments, if the computing device determines that the facial embeddings and / or feature vectors corresponding to the entity do not match the facial embeddings and / or feature vectors corresponding to authorized participants, the computing device can thereby determine that the entity is an unauthorized participant in the video chat session.

[0038] As described above, at least in part based on (e.g., in response to) identifying an authorized participant and / or detecting an unauthorized participant in the chat view, a computing device according to an example embodiment may: render first visual data (e.g., an image, video) indicating an authorized participant in the chat view; and / or hide second visual data (e.g., an image, video) indicating an unauthorized participant in the chat view. For example, in at least one embodiment, the computing device may render the first visual data indicating an authorized participant in the foreground portion (e.g., foreground, front) of the chat view and / or hide the second visual data indicating an unauthorized participant in the background portion (e.g., background, back) of the chat view.

[0039] As cited herein, the term "foreground portion" or "foreground" in the chat view describes an area (e.g., the front area) in the chat view that renders visual data (e.g., image and / or video data, such as images, videos) of an entity (e.g., a human, an object) located relatively closer to the camera used to capture such visual data (e.g., image and / or video data, images, videos) during a video chat session than other entities in the chat view. Similarly, the term "background portion" or "background" in the chat view describes an area (e.g., the rear area) in the chat view that renders visual data (e.g., image and / or video data, such as images, videos) of an entity (e.g., a human, an object) located relatively further away from the camera used to capture such visual data (e.g., image and / or video data, images, videos) during a video chat session than other entities in the chat view.

[0040] In some embodiments, at least in part based on (e.g., in response to) identifying an authorized participant in the chat view, the computing device may render (e.g., visually display) an image and / or video of the authorized participant in the chat view (e.g., in the foreground of the chat view) such that the image and / or video has a first-defined resolution (e.g., a relatively high resolution), which allows the authorized participant to be the focus of the chat view. In some embodiments, at least in part based on (e.g., in response to) detecting an unauthorized participant in the chat view, the computing device may hide (e.g., visually mask, conceal) an image and / or video of the unauthorized participant in the chat view (e.g., in the background of the chat view) such that the image and / or video has a second-defined resolution (e.g., a relatively low resolution less than the first-defined resolution), which allows the unauthorized participant to be blurred, merged, blended, depicted, and / or otherwise hidden in the chat view (e.g., in the background of the chat view).

[0041] According to the example embodiments described herein, at least in part based on (e.g., in response to) the detection of an unauthorized participant in a chat view, a computing device may provide a notification indicating the detection of an unauthorized participant and / or the presence of an unauthorized participant and / or hiding second visual data (e.g., images, videos) indicating an unauthorized participant in the chat view. For example, in one embodiment, after an unauthorized participant is detected in the chat view, the computing device may render (e.g., as a text message, visual indicator) such a notification and / or data indicating the notification in the chat view, and / or at another location on a display, screen, and / or monitor that may be included in the computing device and (e.g., communicatively, operatively) coupled to the computing device and / or otherwise associated with the computing device. In another embodiment, after an unauthorized participant is detected in the chat view, the computing device may provide such a notification as an audio message, which may be played aloud using a speaker that may be included in the computing device and (e.g., communicatively, operatively) coupled to the computing device and / or otherwise associated with the computing device.

[0042] In some embodiments, the computing device may provide the aforementioned notification to another computing device (e.g., a remote and / or external computing device) being used by another authorized participant to participate in a video chat session. For example, in these embodiments, the computing device may provide a notification to another computing device that notifies the other authorized participant of the detection of an unauthorized participant and / or the presence of an unauthorized participant and / or the hiding of second visual data (e.g., images, videos) indicating an unauthorized participant in the chat view. In these embodiments, the computing device may use wired and / or wireless networks (e.g., the Internet) to provide the notification to the other computing device, such as, for example, a client computing device, computer, laptop computer, cellular phone, smartphone, tablet computer, wearable computing device (e.g., smart glasses, smartwatch), and / or another computing device.

[0043] In one embodiment, a computing device may provide the aforementioned notification (e.g., via the Internet) to another computing device described above in a format (e.g., a text file, a text message, an email message) that allows the other computing device to render (e.g., as a text message, a visual indicator) the notification and / or the data indicating the notification in a chat view (e.g., in a video chat application running on the other computing device) and / or at another location on a display, screen, and / or monitor that may be included in the other computing device and (e.g., communicatively, operatively) coupled to the other computing device and / or otherwise associated with the other computing device. In another embodiment, the computing device may provide the notification to the other computing device in an audio message (e.g., an audio file) format (e.g., via the Internet), which may be played aloud using a speaker that may be included in the other computing device and (e.g., communicatively, operatively) coupled to the other computing device and / or otherwise associated with the other computing device.

[0044] According to at least one embodiment of this disclosure, a computing device may: identify a second authorized participant in a video chat session in a chat view; and / or, based at least in part on the identification of the second authorized participant, render third visual data (e.g., an image, video) indicating the second authorized participant in the chat view. In example embodiments, the computing device may identify the second authorized participant in the background portion or the foreground portion of the chat view. In these example embodiments, the computing device may also render third visual data indicating the second authorized participant in the background portion or the foreground portion of the chat view, based at least in part on the identification of the second authorized participant.

[0045] To facilitate the identification of the second authorized participant in the chat view, the computing device according to the example embodiment may (e.g., at the start of a video chat session) use the aforementioned facial recognition module (e.g., machine learning and / or facial matching algorithms and / or models) to implement the facial calibration process to authenticate the second authorized participant as an expected participant and / or invitee of the video chat session. In these or other embodiments, the computing device may also implement the facial recognition module to subsequently identify the second authorized participant in the chat view. For example, the computing device according to the example embodiment may use a camera to capture image and / or video data (e.g., images, videos) of the second authorized participant, and use such captured image and / or video data (e.g., via the aforementioned facial recognition module) to generate facial embeddings and / or feature vectors that can represent, correspond to, and / or indicate the second authorized participant. In these embodiments, the computing device may (e.g., temporarily or permanently in a database and / or memory) store and / or subsequently reference (e.g., access) facial embeddings and / or feature vectors corresponding to the second authorized participant in order to (e.g., via the facial recognition module described above) authenticate and / or identify the second authorized participant as a prospective participant and / or invitee in the video chat session.

[0046] As an example, in one embodiment, before detecting the second authorized participant in the chat view, the computing device may (e.g., at the start of the video chat session) use the aforementioned facial recognition module to perform the aforementioned facial calibration process to authenticate the second authorized participant as an expected participant and / or invitee of the video chat session. In this embodiment or another embodiment, after completing the facial calibration process, the second authorized participant may temporarily leave the chat view (e.g., move out of the camera's field of view) and subsequently return to a position in the background portion of the chat view. In this embodiment or another embodiment, when the second authorized participant returns to a position in the background portion of the chat view, the computing device may implement the aforementioned facial recognition module to identify the second authorized participant as described above and / or render third visual data (e.g., images, videos) indicating the second authorized participant in the background or foreground portion of the chat view.

[0047] In some embodiments, at least in part based on (e.g., in response to) identifying a second authorized participant in the chat view (e.g., in the background or foreground) as described above, the computing device may render (e.g., visually display) an image and / or video of the second authorized participant in the chat view (e.g., in the background or foreground) such that the image and / or video of the second authorized participant has a resolution (e.g., a relatively high resolution) as defined above, allowing the second authorized participant to become the focus of the chat view. For example, in one embodiment, at least in part based on (e.g., in response to) identifying a second authorized participant in the background of the chat view, the computing device may render an image and / or video of the second authorized participant in the background of the chat view such that the image and / or video of the second authorized participant has a resolution (e.g., a relatively high resolution) as defined above, which allows the second authorized participant to become an additional focus of the chat view along with the primary authorized participant previously identified in the chat view.

[0048] In some embodiments, during a video chat session or after the termination (e.g., completion) of a video chat session, the computing device may (e.g., from a database, memory) delete any facial embeddings and / or feature vectors generated for any authorized participant (e.g., the authorized participant and / or the second authorized participant described above) and corresponding to any authorized participant. In some embodiments, after determining that an entity appearing in the chat view is an unauthorized participant and / or after the termination (e.g., completion) of the video chat session, the computing device may (e.g., from a database, memory) delete facial embeddings and / or feature vectors generated for such entities and corresponding to such entities.

[0049] In some embodiments, after the termination (e.g., completion) of a video chat session, the computing device may (e.g., in a database, memory) retain any facial embeddings and / or feature vectors generated for any authorized participant (e.g., the authorized participant and / or second authorized participant described above) and corresponding to any authorized participant. For example, in one embodiment, the computing device may (e.g., in a database, memory) retain such facial embeddings and / or feature vectors for future use with subsequent video chat sessions (e.g., subsequent video chat sessions with the same or different video chat participants and / or invitees as the current video chat session).

[0050] In some embodiments, an authorized participant (e.g., the authorized participant and / or the second authorized participant described above) may (e.g., via a user interface, keyboard, voice command, touchscreen) instruct a computing device (e.g., in a database, memory) to maintain any facial embeddings and / or feature vectors generated for and corresponding to such authorized participants. For example, in one embodiment, such authorized participants may instruct a computing device (e.g., in a database, memory) to maintain such facial embeddings and / or feature vectors for future use with subsequent video chat sessions (e.g., subsequent video chat sessions with the same or different video chat participants and / or invitees as the current video chat session).

[0051] In some embodiments, a computing device may provide and / or receive from another computing device (e.g., a remote and / or external computing device) any facial embedding and / or feature vector generated for any authorized participant (e.g., the authorized participant and / or second authorized participant described above) and corresponding to any authorized participant. For example, in these embodiments, the computing device may communicate (e.g., provide and / or receive) such facial embedding and / or feature vectors to another computing device, such as, for example, a client computing device, computer, laptop computer, cellular phone, smartphone, tablet computer, wearable computing device (e.g., smart glasses, smartwatch), and / or another computing device, using a wired and / or wireless network (e.g., the Internet).

[0052] In one embodiment, a computing device may provide a facial embedding and / or feature vector to another remote computing device, which, according to an example embodiment of this disclosure, can then use the facial embedding and / or feature vector to authenticate and / or identify an authorized participant corresponding to the facial embedding and / or feature vector. For example, in this embodiment or another embodiment, at the start of a video chat session, the computing device may generate a facial embedding and / or feature vector corresponding to an authorized participant and then (e.g., via a wired and / or wireless network) send them to a remote computing device. In this embodiment or another embodiment, such an authorized participant can then use the remote computing device to participate in the video chat session, where the remote computing device can use the facial embedding and / or feature vector corresponding to the authorized participant to identify the authorized participant in the chat view, as described herein with reference to example embodiments.

[0053] In another embodiment, the computing device may receive such facial embeddings and / or feature vectors from another remote computing device, and according to an example embodiment of this disclosure, the computing device may then use such facial embeddings and / or feature vectors to authenticate and / or identify an authorized participant corresponding to the facial embeddings and / or feature vectors. For example, in this embodiment or another embodiment, at the start of a video chat session, the remote computing device may generate facial embeddings and / or feature vectors corresponding to an authorized participant and then (e.g., via wired and / or wireless networks) send them to the computing device. In this embodiment or another embodiment, such authorized participants may then use the computing device to participate in a video chat session, wherein the computing device may use the facial embeddings and / or feature vectors generated by the remote computing device and corresponding to the authorized participants to identify the authorized participants in the chat view, as described herein according to example embodiments.

[0054] According to exemplary embodiments of this disclosure, in order to facilitate modifications to visual data (e.g., images, videos) in a chat view associated with a video chat session based at least in part on (e.g., in response to) user movement, in one embodiment, the computing device (e.g., computing device 110) may: define a chat area in a chat view associated with a video chat session, the chat area indicating a reference position of a participant in the video chat session (e.g., the authorized participant mentioned above); determine that a participant has moved out of the chat area; and / or, based at least in part on (e.g., in response to) determining that a participant has moved out of the chat area, hide the visual data (e.g., images, videos) indicating the participant in the chat view. In some embodiments, the computing device may also: determine that a participant has returned to the chat area; and / or, based at least in part on (e.g., in response to) determining that a participant has returned to the chat area, render the visual data (e.g., images, videos) indicating the participant in the chat view.

[0055] In at least one embodiment described herein, the aforementioned chat area may be defined to indicate a reference position for a participant, for example, selected and / or chosen by the participant during the implementation of the chat area calibration process described below (e.g., during the chat area calibration process described below, the participant may choose to stand or sit in a certain position and / or have a certain orientation and / or posture). In some embodiments, a participant's chat area and / or reference position may be a position, orientation, and / or posture that a participant typically occupies during a video chat session (e.g., a position centered on the foreground of the chat view). In some embodiments, a participant's chat area and / or reference position may be a position, orientation, and / or posture that a participant does not typically occupy during a video chat session (e.g., a position along the perimeter and / or in the background of the chat view).

[0056] To define the aforementioned chat area that can indicate a participant's reference position, the computing device according to the example embodiment may use a facial recognition module and / or a feature tracking algorithm to perform the chat area calibration process described below, at least in part, based on reference keypoint data and / or reference feature vectors that can correspond to the participant to define the participant's chat area in the chat view. In these or other embodiments, such reference keypoint data and / or reference feature vectors can describe the participant and / or indicate the participant's location at a reference position. Therefore, in these or other embodiments, the participant's reference keypoint data and / or reference feature vectors can correspond to, constitute, and / or indicate the participant's chat area and / or reference position, and thus can be used to define and / or represent the participant's chat area and / or reference position.

[0057] To perform the chat zone calibration process, a computing device according to an example embodiment of this disclosure may use a camera to capture image and / or video data (e.g., images, videos) of a participant in a video chat session (e.g., the authorized participant described above) while maintaining a certain position, orientation, and / or posture at a certain location. In these or other embodiments, while the camera captures such image and / or video data of the participant, the participant may choose to stand or sit at a certain location and / or have a certain orientation and / or posture, and thus, the participant may define their chat zone and / or reference position. In these or other embodiments, the computing device may also implement a facial recognition module (e.g., machine learning and / or facial matching algorithms and / or models) and / or feature tracking algorithms (e.g., the Kanade-Lucas-Tomasi (KLT) algorithm) that can use such captured image and / or video data to learn the skeletal keypoints of the participant at the participant's reference position.

[0058] In some embodiments, the participant's reference location skeletal keypoints may constitute the participant's reference keypoint data, which may describe the participant and / or indicate that the participant is located at a reference location. In these or other embodiments, the computing device may also implement a facial recognition module and / or a feature tracking algorithm to calculate (e.g., compute) a reference feature vector, which may include, constitute, and / or indicate reference distances between at least some of the skeletal keypoints in the participant's reference keypoint data. Therefore, in these or other embodiments, the participant's reference keypoint data and / or reference feature vector may describe the participant and / or indicate that the participant is located at a reference location.

[0059] In one embodiment, the computing device may perform the chat area calibration process described above after the installation and / or configuration (e.g., setup) of a video chat application that can run (e.g., be executed) on the computing device. In another embodiment, the computing device may perform the chat area calibration process after the initiation and / or startup of a video chat session (e.g., at the start of a video chat session). In yet another embodiment, the computing device may perform the chat area calibration process during a video chat session (e.g., when a participant joins an already ongoing video chat session).

[0060] In some embodiments, the computing device may (e.g., temporarily or permanently in a database and / or memory) store and / or subsequently reference (e.g., access) reference keypoint data and / or reference feature vectors of a participant to determine whether the participant has moved outside or returned to the participant's chat area and / or reference location. For example, in these or other embodiments, after completing the chat area calibration process described above, the computing device may use the aforementioned feature tracking algorithm (e.g., the KLT algorithm) to perform a pose estimation process during a video chat session to track the participant as they move within the participant's chat area and / or chat view. In these or other embodiments, by using such a feature tracking algorithm to track the participant's movement during a video chat session, the computing device may obtain (e.g., observe, compute) runtime data that may describe, correspond to, and / or indicate that the participant is positioned and / or oriented at one or more locations different from the participant's chat area and / or reference location.

[0061] To perform the pose estimation process described above, as the participant moves during a video chat session, the computing device according to the example embodiment can use the aforementioned face recognition module and / or feature tracking algorithm (e.g., the KLT algorithm) to periodically (e.g., every 1 / 2 second, per second) and / or continuously determine (e.g., learn, observe) the participant's runtime keypoint data (e.g., current keypoint data) and / or calculate (e.g., compute) the participant's runtime feature vector (e.g., current feature vector). In these or other embodiments, during the video chat session, the computing device can also use the face recognition module and / or feature tracking algorithm to compare the participant's runtime keypoint data and / or runtime feature vector with the participant's reference keypoint data and / or reference feature vector to determine whether there is a difference between such runtime data and reference data exceeding a defined threshold (e.g., a predefined threshold).

[0062] In some embodiments, the computing device may compare runtime distances between keypoints in a participant's runtime keypoint data with reference distances between keypoints in a participant's reference keypoint data to determine whether the difference between one runtime distance and one reference distance in the runtime distance exceeds a defined threshold (e.g., a predefined distance and / or percentage value). For example, in an example embodiment, a participant's reference feature vector may include, constitute, and / or indicate reference distances between at least some skeletal keypoints in the participant's reference keypoint data. Similarly, in these embodiments, a participant's runtime feature vector may include, constitute, and / or indicate runtime distances between at least some skeletal keypoints in the participant's runtime keypoint data. In these embodiments, the computing device may use a facial recognition module and / or a feature tracking algorithm to compare at least one such runtime distance with at least one such reference distance to determine whether the difference between such distances exceeds a defined threshold, wherein such determination may indicate that the participant has moved outside the participant's chat area and / or reference location.

[0063] In one embodiment, if the computing device (e.g., using the KLT algorithm) determines that a runtime distance is shorter than a corresponding reference distance, and also determines that the distance difference exceeds (e.g., is greater than) a predefined distance value, the computing device can thereby determine that the participant has moved outside the participant's chat area and / or reference location. In another embodiment, if the computing device (e.g., using the KLT algorithm) determines that the runtime distance is shorter than the corresponding reference distance by a certain percentage (e.g., 50%), the computing device can thereby determine that the participant has moved outside the participant's chat area and / or reference location.

[0064] In at least one embodiment of this disclosure, at least in part based on (e.g., in response to) determining that a participant has moved outside the participant's chat area and / or reference location, the computing device may hide visual data (e.g., images, videos) indicating the participant in the chat view. For example, in this embodiment or another embodiment, the computing device may hide (e.g., visually mask, conceal) the participant's images and / or videos in the chat view (e.g., in the background of the chat view) such that the images and / or videos have a resolution as defined above (e.g., a relatively low resolution less than the resolution defined above), which allows the participant to be blurred, merged, blended, drawn, and / or otherwise hidden in the chat view (e.g., in the background of the chat view).

[0065] In at least one embodiment of this disclosure, the computing device may further implement a facial recognition module and / or a feature tracking algorithm, along with the aforementioned reference distance and runtime distance of the participant, to determine whether the participant has returned to the participant's chat area and / or reference location. In this embodiment, the computing device may use the facial recognition module and / or the feature tracking algorithm to compare at least one of such runtime distances with at least one of such reference distances to determine whether the difference between such distances is less than a defined threshold, wherein such determination may indicate that the participant has returned to the participant's chat area and / or reference location.

[0066] In one embodiment, if the computing device (e.g., using the KLT algorithm) determines that a runtime distance is approximately equal to or shorter than a corresponding reference distance, and also determines that the distance difference is less than a predefined distance value, then the computing device can thereby determine that the participant has returned to the participant's chat area and / or reference location. In another embodiment, if the computing device (e.g., using the KLT algorithm) determines that the runtime distance is approximately equal to or shorter than the corresponding reference distance by a certain percentage (e.g., 5%), then the computing device can thereby determine that the participant has returned to the participant's chat area and / or reference location.

[0067] In at least one embodiment of this disclosure, at least in part based on (e.g., in response to) determining that a participant has returned to their chat area and / or reference location, the computing device may render visual data (e.g., images, videos) indicating the participant in the chat view. For example, in this embodiment or another embodiment, the computing device may render (e.g., visually display) the participant's image and / or video in the chat view (e.g., in the foreground of the chat view) such that the image and / or video has a resolution (e.g., a relatively high resolution) as defined above, allowing the participant to become the focus of the chat view.

[0068] According to an example embodiment of this disclosure, in order to facilitate modification of visual data (e.g., images, videos) in a chat view associated with a video chat session based at least in part on (e.g., in response to) user identification and user movement, in one embodiment, the computing device (e.g., computing device 110) may: identify a first authorized participant and a second authorized participant in the video chat session in the chat view associated with the video chat session; render first visual data (e.g., images, videos) indicating the first authorized participant and second visual data (e.g., images, videos) indicating the second authorized participant in the chat view, respectively, based at least in part on (e.g., in response to) identifying the first authorized participant and the second authorized participant; define a chat area in the chat view indicating a reference position of the first authorized participant; determine that the first authorized participant has moved out of the chat area; and / or hide the first visual data (e.g., images, videos) indicating the first authorized participant in the chat view based at least in part on (e.g., in response to) determining that the first authorized participant has moved out of the chat area.

[0069] To facilitate the identification of a first authorized participant and / or a second authorized participant appearing in the chat view, a computing device according to the example embodiments described herein may use the facial recognition module described above to perform the aforementioned facial calibration process to authenticate the first authorized participant and / or the second authorized participant as participants in the video chat session, respectively. For example, in at least one embodiment, the computing device may generate facial embeddings and / or feature vectors as described above, which may represent, correspond to, and / or indicate the first authorized participant and / or the second authorized participant, respectively. In this embodiment or another embodiment, the computing device may (e.g., temporarily or permanently in a database and / or memory) store and / or subsequently reference (e.g., access) such facial embeddings and / or feature vectors to identify the first authorized participant and / or the second authorized participant in the chat view, as described above.

[0070] In at least one embodiment of this disclosure, at least in part based on (e.g., in response to) identifying a first authorized participant and / or a second authorized participant, the computing device may render in a chat view first visual data (e.g., an image, video) indicating the first authorized participant and / or second visual data (e.g., an image, video) indicating the second authorized participant. In this embodiment or another embodiment, the computing device may render (e.g., visually display) an image and / or video of the first authorized participant in the chat view (e.g., in the foreground of the chat view) such that the image and / or video has the aforementioned first-defined resolution (e.g., a relatively high resolution) allowing the first authorized participant to become the focus of the chat view. In this embodiment or another embodiment, the computing device may render (e.g., visually display) an image and / or video of the second authorized participant in the chat view (e.g., in the foreground or background of the chat view) such that the image and / or video has the aforementioned first-defined resolution (e.g., a relatively high resolution) allowing the second authorized participant to become an additional focus of the chat view along with the first authorized participant.

[0071] To define a chat area that can indicate the reference location of the first authorized participant, a computing device according to an example embodiment may use a facial recognition module and / or a feature tracking algorithm to perform the chat area calibration process described above, to define the chat area of ​​the first authorized participant in the chat view based at least in part on reference keypoint data and / or reference feature vectors that can correspond to the first authorized participant. In some embodiments, the computing device may (e.g., temporarily or permanently in a database and / or memory) store and / or subsequently reference (e.g., access) the reference keypoint data and / or reference feature vectors of the first authorized participant to determine whether the first authorized participant has moved outside of the first authorized participant's chat area and / or reference location or returned to the chat area and / or reference location.

[0072] In some embodiments, after completing the chat area calibration process, the computing device may use the aforementioned feature tracking algorithm (e.g., the KLT algorithm) to perform the aforementioned pose estimation process during a video chat session to track the first authorized participant as the first authorized participant moves within the first authorized participant's chat area and / or chat view. In these or other embodiments, the computing device may also use the feature tracking algorithm as described above during the video chat session to compare the first authorized participant's runtime keypoint data and / or runtime feature vector with the first authorized participant's reference keypoint data and / or reference feature vector to determine if there is a difference between such runtime data and reference data, indicating whether the first authorized participant has moved outside the first authorized participant's chat area and / or reference position or returned to the chat area and / or reference position.

[0073] In at least one embodiment of this disclosure, at least in part based on (e.g., in response to) determining that a first authorized participant has moved outside the chat area and / or reference location of the first authorized participant, the computing device may hide first visual data (e.g., images, videos) indicating the first authorized participant in the chat view. For example, in this embodiment or another embodiment, the computing device may hide (e.g., visually mask, conceal) the images and / or videos of the first authorized participant in the chat view (e.g., in the background of the chat view) such that the images and / or videos have a resolution as defined above (e.g., a relatively low resolution less than the resolution defined above), which allows the first authorized participant to be blurred, merged, blended, depicted, and / or otherwise hidden in the chat view (e.g., in the background of the chat view).

[0074] In some embodiments, the computing device may maintain rendering of second visual data (e.g., images, videos) indicating a second authorized participant in the chat view at least in part based on (e.g., in response to) determining that a first authorized participant has moved outside the first authorized participant's chat area and / or reference position. That is, for example, in these or other embodiments, at least in part based on (e.g., in response to) determining that a first authorized participant has moved outside the first authorized participant's chat area and / or reference position, the computing device may hide (e.g., visually mask, conceal) the first visual data (e.g., images, videos) indicating the first authorized participant in the chat view (e.g., in the background of the chat view), while continuing to render (e.g., visually display) the second visual data (e.g., images, videos) indicating the second authorized participant in the chat view (e.g., in the background or foreground of the chat view). For example, in these or other embodiments, the computing device may hide (e.g., visually mask or conceal) the image and / or video of the first authorized participant in the chat view (e.g., in the background of the chat view) while continuing to render (e.g., visually display) the image and / or video of the second authorized participant in the chat view (e.g., in the background or foreground of the chat view).

[0075] In example embodiments, a computing device can detect unauthorized participants in a video chat session within a chat view. To detect unauthorized participants appearing in the chat view, the computing device according to the example embodiments described herein can implement a facial recognition module as described above using facial embeddings and / or feature vectors corresponding to a first authorized participant and / or a second authorized participant, respectively. For example, in these or other embodiments, the computing device can (e.g., using the facial recognition module) determine that the facial embeddings and / or feature vectors corresponding to the unauthorized participant do not match the facial embeddings and / or feature vectors corresponding to the first authorized participant and the second authorized participant, respectively. In these or other embodiments, at least in part based on (e.g., in response to) such a determination, the computing device can thereby determine that the unauthorized participant is not an intended participant and / or invitee in the video chat session.

[0076] In some embodiments, the computing device may, at least in part, hide third visual data (e.g., images, videos) indicating an unauthorized participant in the chat view based on (e.g., in response to) the detection of an unauthorized participant. For example, in these or other embodiments, the computing device may hide (e.g., visually mask, conceal) images and / or videos of unauthorized participants in the chat view (e.g., in the background of the chat view) such that the images and / or videos have a resolution as defined above (e.g., a relatively low resolution less than the resolution defined above), which allows the unauthorized participant to be blurred, merged, blended, depicted, and / or otherwise hidden in the chat view (e.g., in the background of the chat view).

[0077] According to the example embodiments described herein, at least in part based on (e.g., in response to) the detection of an unauthorized participant in a chat view, a computing device may provide a notification indicating the detection of an unauthorized participant and / or the presence of an unauthorized participant and / or hiding third visual data (e.g., images, videos) indicating an unauthorized participant in the chat view. For example, in one embodiment, after an unauthorized participant is detected in the chat view, the computing device may render such a notification in the chat view and / or at another location on a display, screen, and / or monitor that may be included in the computing device and (e.g., communicatively, operatively) coupled to the computing device and / or otherwise associated with the computing device. In another embodiment, after an unauthorized participant is detected in the chat view, the computing device may provide such a notification as an audio message, which may be played aloud using a speaker that may be included in the computing device and (e.g., communicatively, operatively) coupled to the computing device and / or otherwise associated with the computing device.

[0078] Figure 1 A block diagram of an example non-limiting apparatus 100 according to one or more exemplary embodiments of the present disclosure is shown. Figure 1 In the example embodiments depicted, device 100 may be configured, included, (e.g., operatively) coupled to computing device 110 and / or otherwise associated with the computing device.

[0079] As previously specified, according to the example embodiments of this disclosure, computing device 110 can perform the operations described above to facilitate modifications to visual data (e.g., images, videos) in a chat view associated with a video chat session, at least in part based on (e.g., in response to) user identification and / or user movement. However, for the sake of brevity, a complete and repetitive description of all such operations is omitted from the following disclosure with reference to the example embodiments depicted in the accompanying drawings.

[0080] The computing device 110 according to an example embodiment of this disclosure can be configured as, for example, a client computing device, a computer, a laptop computer, a cellular phone, a smartphone, a tablet computer, a wearable computing device (e.g., smart glasses, a smartwatch), an action camera, a dashboard camera, an omnidirectional camera, and / or other computing devices. Figure 1 As illustrated in the example embodiments depicted, computing device 110 may include one or more processors 112, memory 114, associated display device 126, encoder 128, decoder 130 and / or camera 132.

[0081] The processor 112 according to the example embodiments described herein may each be a processing device. For example, in Figure 1 In the example embodiments depicted, processor 112 may be a central processing unit (CPU), a microprocessor, a microcontroller, an integrated circuit (e.g., an application-specific integrated circuit (ASIC)) and / or another type of processing device.

[0082] Memory 114 according to the example embodiments described herein may store computer-readable and / or computer-executable entities (e.g., data, information, applications, models, algorithms) that can be created, modified, accessed, read, retrieved, and / or executed by each processor in processor 112. In some embodiments, memory 114 may be configured, included, (e.g., operatively) coupled to and / or otherwise associated with a computing system and / or medium, such as, for example, one or more computer-readable media, volatile memory, non-volatile memory, random access memory (RAM), read-only memory (ROM), hard disk drive, flash drive, and / or other memory devices. In these or other embodiments, such one or more computer-readable media may include, be configured, (e.g., operatively) coupled to and / or otherwise associated with one or more non-transitory computer-readable media. Figure 1 In the example embodiment depicted, memory 114 may include data 116, instructions 118, video chat application 120, facial recognition module 122, and / or feature tracking algorithm 124.

[0083] Data 116 according to the exemplary embodiments described herein may constitute and / or include, for example, structured data, unstructured data, proprietary data, and / or another type of data. In some embodiments, data 116 may constitute and / or include any type of data described herein, which, according to the exemplary embodiments of this disclosure, may be generated, managed (e.g., stored), communicated (e.g., via wired and / or wireless networks), and / or utilized (e.g., referenced, ingested as input). In at least one embodiment, according to the exemplary embodiments of this disclosure, data 116 may include data that can be used by computing device 110 to implement (e.g., execute, run), operate, and / or manage video chat application 120, facial recognition module 122, and / or feature tracking algorithm 124.

[0084] Although not in Figure 1 The example embodiments shown are illustrated, but data 116 according to the example embodiments described herein may include, for example, the face embedding and / or feature vectors (e.g., reference feature vectors, runtime feature vectors) described above, which may represent, correspond to, and / or indicate entities such as, for example, authorized or unauthorized participants in a video chat session. For example, in one embodiment, data 116 may include, as described below and in… Figure 4 The authorized participant face set 402 is shown in the example embodiment depicted in the text.

[0085] Alternatively or alternatively, although not in Figure 1The example embodiments shown are illustrated, but data 116 according to the example embodiments described herein may include, for example, keypoint data (e.g., skeleton keypoints, reference keypoint data, runtime keypoint data) described above, which may represent, correspond to, and / or indicate entities such as, for example, authorized participants in a video chat session. For example, in one embodiment, data 116 may include, as described below and in… Figure 4 The example embodiment depicted shows the chat area gesture set 404.

[0086] Instructions 118 according to the example embodiments described herein may include any computer-readable and / or computer-executable instructions (e.g., software, routines, processing threads) that, when executed by processor 112, cause computing device 110 to perform one or more specific operations. For example, in some embodiments, instructions 118 may include instructions that, when executed by processor 112, cause computing device 110 to perform operations according to the example embodiments described herein to modify visual data (e.g., images, videos) in a chat view associated with a video chat session, at least in part based on (e.g., in response to) user identification and / or user movement.

[0087] The video chat application 120, facial recognition module 122, and / or feature tracking algorithm 124 according to the example embodiments described herein can each be implemented (e.g., executed, run) on a computing device 110 (e.g., via processor 112) to facilitate modifications to visual data (e.g., images, videos) in a chat view associated with a video chat session, at least in part based on (e.g., in response to) user identification and / or user movement. Figure 1 In the example embodiments depicted herein, according to example embodiments of this disclosure, computing device 110 (e.g., via processor 112) may implement (e.g., execute, run) video chat application 120 to allow entities (e.g., authorized participants) to initiate, join, and / or otherwise participate in video chat sessions.

[0088] In at least one embodiment, the face recognition module 122 may be configured and / or include, for example, machine learning and / or face matching algorithms and / or models that can learn skeletal keypoints of an entity and / or subsequently use such skeletal keypoints to identify the entity in a chat view associated with a video chat session and / or detect another entity in such a chat view. In this or another embodiment, according to the example embodiments described herein, computing device 110 (e.g., via processor 112) may implement (e.g., execute, run) the face recognition module 122 to identify authorized participants in a chat view associated with a video chat session and / or detect unauthorized participants in such a chat view.

[0089] In at least one embodiment, feature tracking algorithm 124 may constitute and / or include a feature tracking algorithm, such as, for example, the Kanade-Lucas-Tomasi (KLT) algorithm, which tracks the movement of an entity within a chat view associated with a video chat session to determine whether the entity has moved outside and / or returned to the chat area and / or reference position associated with the entity. In this embodiment or another embodiment, according to the example embodiments described herein, computing device 110 (e.g., via processor 112) may implement (e.g., execute, run) feature tracking algorithm 124 to track the movement of a participant (e.g., an authorized participant) within a chat view associated with a video chat session to determine whether the participant has moved outside and / or returned to the chat area and / or reference position associated with the participant.

[0090] The associated display device 126 according to the example embodiments described herein can be any type of display device, which can be configured to display visual data, such as images and / or videos (e.g., captured by camera 132 or a camera of another computing device), and can be coupled to, included in, and / or otherwise associated with the computing device 110. For example, in at least one embodiment, the associated display device 126 can be a monitor, screen, and / or display device, which may include, but is not limited to, a smartphone screen, a tablet computer screen, a laptop computer display device, a communicatively connected display device, and / or another associated monitor, screen, and / or display device.

[0091] The encoder 128 according to the example embodiments described herein may constitute and / or include, for example, a video encoder (e.g., a hardware and / or software video encoder) that may be configured to compress and / or encode video data (e.g., video streams, video frames, image data, statistics corresponding to such video data). In some embodiments, the encoder 128 may be configured to compress and / or encode image and / or video data (e.g., images, videos) captured by the camera 132 during a video chat session (e.g., using compression algorithms such as, for example, data compression algorithms).

[0092] Decoder 130 according to the example embodiments described herein may constitute and / or include, for example, a video decoder (e.g., a hardware and / or software video decoder) that may be configured to decompress and / or decode video data (e.g., video streams, video frames, image data, statistics corresponding to such video data). In some embodiments, decoder 130 may be configured to decompress and / or decode data generated by camera 132 and / or another computing device (e.g., described below) during a video chat session. Figure 2Image and / or video data (e.g., images, videos) captured by the camera of the computing devices 230, 240 and / or 250 shown in the figure.

[0093] Camera 132, according to the example embodiments described herein, can be any device capable of capturing visual data that can constitute and / or indicate images and / or video. For example, camera 132 can constitute and / or include a digital camera, an analog camera, an integrated camera, and / or may include another camera in, coupled to, and / or otherwise associated with the computing device 110.

[0094] Figure 2 A block diagram of an example non-limiting video chat environment 200 according to one or more example embodiments of the present disclosure is shown. Figure 2 In the example embodiments depicted, the video chat environment 200 can facilitate (e.g., orchestrate, provide, support) video chat sessions (e.g., video conferencing) that can be conducted using multiple computing devices that can be coupled to each other (e.g., communicatively, operationally) via wired and / or wireless networks.

[0095] like Figure 2 As illustrated in the example embodiments depicted, the video chat environment 200 may include one or more computing devices 110, 210, 230, 240, 250 that can be communicatively or operatively coupled to each other via one or more networks 260. Although in Figure 2 The example embodiment shown depicts five computing devices 110, 210, 230, 240, and 250, but any number of computing devices may be included in the video chat environment 200 and coupled to each other (e.g., communicatively and operatively) via network 260.

[0096] exist Figure 2In the example embodiments depicted, according to example embodiments of this disclosure, each computing device 230, 240, and / or 250 may respectively facilitate modifications to visual data (e.g., images, videos) in a chat view associated with a video chat session, at least in part based on (e.g., in response to) user identification and / or user movement. In some embodiments, each computing device 230, 240, and / or 250 may respectively facilitate modifications to visual data (e.g., images, videos) in a chat view associated with a video chat session, at least in part based on (e.g., in response to) user identification and / or user movement, in the same manner as computing device 110. That is, for example, in these embodiments, according to example embodiments of this disclosure, each computing device 230, 240, and / or 250 may respectively perform the same operations described above that can be performed by computing device 110 to facilitate modifications to visual data (e.g., images, videos) in a chat view associated with a video chat session, at least in part based on (e.g., in response to) user identification and / or user movement. However, for the sake of brevity, a full description of all such operations is omitted here.

[0097] In exemplary embodiments of this disclosure, computing devices 230, 240, and 250 may each be, for example, a client computing device, a computer, a laptop computer, a cellular phone, a smartphone, a tablet computer, a wearable computing device (e.g., smart glasses, a smartwatch), and / or another computing device. In some embodiments, computing devices 230, 240, and 250 may each be a computing device of the same type as computing device 110 and / or include components, structures, attributes, and / or functions identical to those of computing device 110. In some embodiments, computing devices 230, 240, and 250 may each be a computing device of a different type than computing device 110 and / or include components, structures, attributes, and / or functions different from those of computing device 110.

[0098] Although not in Figure 2 The example embodiments depicted herein are shown, but in at least one embodiment of this disclosure, computing devices 230, 240 and / or 250 may include those referenced above. Figure 1 The processor 112, memory 114, associated display device 126, encoder 128, decoder 130, and / or camera 132 are described. In this embodiment or another embodiment, although not explicitly stated... Figure 2 The example embodiments depicted herein, but which may be included in computing devices 230, 240 and / or 250, may include memory 114 as described above. Figure 1The described data 116, instructions 118, video chat application 120, facial recognition module 122, and / or feature tracking algorithm 124. In this embodiment or another embodiment, although not in... Figure 2 The example embodiments depicted herein, but which may include data 116 in computing devices 230, 240 and / or 250, may include data described below and Figure 4 The example embodiments depicted show an authorized participant face set 402 (e.g., reference and / or runtime face embeddings and / or feature vectors corresponding to the authorized participants) and / or chat area pose set 404 (e.g., reference and / or runtime keypoint data corresponding to the authorized participants).

[0099] In exemplary embodiments of this disclosure, computing device 210 may be, for example, a computer, server, host server, and / or any other computing device that can be configured to be used to implement (e.g., execute, run), operate, and / or manage a video chat system and / or a video chat application. Figure 2 As illustrated in the example embodiments, computing device 210 may include one or more processors 212, memory 214, and / or video chat system 222.

[0100] The processor 212 according to the example embodiments described herein may each be a processing device. For example, in Figure 2 In the example embodiments depicted, processor 212 may be a central processing unit (CPU), a microprocessor, a microcontroller, an integrated circuit (e.g., an application-specific integrated circuit (ASIC)) and / or another type of processing device.

[0101] In some embodiments, processors 212 may each be processors of the same type as processor 112 and / or include components, structures, attributes, and / or functions that are the same as those of processor 112. In some embodiments, processors 212 may each be processors of a different type than processor 112 and / or include components, structures, attributes, and / or functions that are different from those of processor 112.

[0102] Memory 214 according to the example embodiments described herein may store computer-readable and / or computer-executable entities (e.g., data, information, applications, models, algorithms, etc.) that can be created, modified, accessed, read, retrieved, and / or executed by each processor in processor 212. In some embodiments, memory 214 may be configured, included, (e.g., operatively) coupled to and / or otherwise associated with a computing system and / or medium, such as, for example, one or more computer-readable media, volatile memory, non-volatile memory, random access memory (RAM), read-only memory (ROM), hard disk drive, flash drive, and / or other memory devices. In these or other embodiments, such one or more computer-readable media may include, be configured, (e.g., operatively) coupled to and / or otherwise associated with one or more non-transitory computer-readable media.

[0103] In some embodiments, memory 214 may be a memory of the same type as memory 114 and / or include components, structures, attributes, and / or functions that are the same as those of memory 114. In some embodiments, memory 214 may be a memory of a different type than memory 114 and / or include components, structures, attributes, and / or functions that are different from those of memory 114. Figure 2 In the example embodiment depicted, memory 214 may include data 216, instructions 218, and / or video chat application 220.

[0104] Data 216 according to the example embodiments described herein may constitute and / or include, for example, structured data, unstructured data, proprietary data, and / or another type of data. In some embodiments, data 216 may constitute and / or include any type of data described herein, which, according to the example embodiments of this disclosure, may be generated, managed (e.g., stored), (e.g., transmitted via wired and / or wireless networks), and / or utilized (e.g., referenced, ingested as input).

[0105] In at least one embodiment, according to an example embodiment of this disclosure, data 216 may include data that can be used by computing device 210 to implement (e.g., execute, run), operate, and / or manage video chat application 220 and / or video chat system 222. For example, in this embodiment or another embodiment, data 216 may include data associated with, specific to, and / or received from computing device 110, 230, 240, and / or 250 via network 260. For example, in some embodiments, data 216 may include data that can indicate and / or describe: the identity of computing device 110, 230, 240, and / or 250 (e.g., device identification number, serial number, model); the location of computing device 110, 230, 240, and / or 250; and device-specific data associated with and / or used by video chat application 120 that can run on computing device 110, 230, 240, and / or 250.

[0106] Although not in Figure 2 The example embodiments shown are illustrated, but data 216 according to the example embodiments described herein may include, for example, the face embedding and / or feature vectors (e.g., reference feature vectors, runtime feature vectors) described above, which may represent, correspond to, and / or indicate entities such as, for example, authorized or unauthorized participants in a video chat session. For example, in one embodiment, data 216 may include, as described below and in… Figure 4 The authorized participant face set 402 is shown in the example embodiment depicted in the text.

[0107] Alternatively or alternatively, although not in Figure 2 The example embodiments shown are illustrated, but data 216 according to the example embodiments described herein may include, for example, keypoint data (e.g., skeleton keypoints, reference keypoint data, runtime keypoint data) described above, which may represent, correspond to, and / or indicate entities such as, for example, authorized participants in a video chat session. For example, in one embodiment, data 216 may include, as described below and in… Figure 4 The example embodiment depicted shows the chat area gesture set 404.

[0108] In some embodiments (e.g., during operation of video chat application 120 and / or video chat system 222), data 116 (e.g., authorized participant face set 402 and / or chat area gesture set 404) that can be stored on each memory 114 of computing devices 110, 230, 240, and 250, respectively, can be transmitted between computing devices 110, 230, 240, and / or 250 via network 260. In these or other embodiments, according to the example embodiments described herein, data 116 (e.g., authorized participant face set 402 and / or chat area gesture set 404) that may be stored on each memory 114 of computing devices 110, 230, 240 and / or 250 may be used by any of the computing devices 110, 230, 240, 250 (e.g., during operation of video chat application 120 and / or video chat system 222) to facilitate modifications to visual data (e.g., images, videos) in the chat view associated with the video chat session, based at least in part on (e.g., in response to) user identification and / or user movement.

[0109] In some embodiments (e.g., during operation of video chat application 120, video chat application 220, and / or video chat system 222), data 116 and / or data 216 (e.g., authorized participant face set 402 and / or chat area gesture set 404) can be transferred between computing device 210 and any of computing devices 110, 230, 240, 250 via network 260. In some embodiments, according to the example embodiments described herein, data 116 and / or data 216 (e.g., authorized participant face set 402 and / or chat area gesture set 404) may be used by any of computing devices 110, 210, 230, 240, 250 (e.g., during operation of video chat application 120 and / or video chat system 222) to facilitate modifications to visual data (e.g., images, videos) in the chat view associated with the video chat session, at least in part based on (e.g., in response to) user identification and / or user movement. In some embodiments (e.g., during operation of video chat application 120, video chat application 220, and / or video chat system 222), data 116 and / or data 216 may be accessed and / or displayed to one or more users of computing devices 110, 210, 230, 240, and / or 250.

[0110] In some embodiments, data 216 may include image and / or video data that may respectively indicate and / or describe images and / or videos that can be captured and / or received from computing devices 110, 230, 240, and / or 250 via network 260. For example, in these or other embodiments, data 216 may include videos that can be captured by the cameras 132 of computing devices 110, 230, 240, and / or 250 when using camera 132 (e.g., when implementing a video chat application 120 on such devices).

[0111] Instructions 218 according to the example embodiments described herein may include any computer-readable and / or computer-executable instructions (e.g., software, routines, processing threads) that, when executed by processor 212, cause computing device 210 to perform one or more specific operations. For example, in some embodiments, according to example embodiments of this disclosure, instructions 218 may include instructions that, when executed by processor 212, may cause computing device 210 to perform operations to implement (e.g., execute, run), operate, and / or manage video chat application 220 and / or video chat system 222.

[0112] According to exemplary embodiments of this disclosure, a video chat application 220 according to the exemplary embodiments described herein may be configured and / or include a video chat application that can be implemented (e.g., executed, run), operated, and / or managed by a computing device 210 to conduct video chat sessions between at least two computing devices among computing devices 110, 230, 240, and 250. In some embodiments, video chat application 220 may be an application of the same type as video chat application 120 and / or include components, structures, attributes, and / or functionalities identical to those of video chat application 120. In some embodiments, video chat application 220 may be an application of a different type from video chat application 120 and / or include components, structures, attributes, and / or functionalities different from those of video chat application 120.

[0113] The video chat system 222 according to an example embodiment of this disclosure may constitute and / or include a “system” as defined herein, which may be implemented by a computing device 210 (e.g., via a processor 212). As referenced herein, the term “system” may refer to hardware (e.g., dedicated hardware), computer logic executed on a general-purpose processor (e.g., a central processing unit (CPU)), and / or some combination thereof. In some embodiments, the “system” may be implemented in hardware, dedicated circuitry, firmware, and / or software that controls the general-purpose processor. In some embodiments, the “system” may be implemented as a program code file stored on a storage device, loaded into memory, and executed by a processor, and / or provided as a computer program product of computer-executable instructions stored, for example, in a tangible computer-readable storage medium (e.g., random access memory (RAM), hard disk, optical media, magnetic media).

[0114] In some embodiments, the video chat system 222 may be configured, include, (e.g., communicatively, operatively) coupled to hardware (e.g., dedicated hardware), computer logic and / or some combination thereof that can be executed on a processor 212 (e.g., a general-purpose processor, a central processing unit (CPU)), and / or otherwise associated with the hardware, the computer logic, and / or some combination thereof. In some embodiments, the video chat system 222 may be implemented in hardware, dedicated circuitry, firmware, and / or software that controls the processor 212. In some embodiments, the video chat system 222 may be implemented as a program code file stored on, loaded into, and executed by the processor 212 on memory 214, and / or provided as a computer program product of computer-executable instructions stored, for example, in memory 214 (e.g., a tangible computer-readable storage medium, random access memory (RAM), a hard disk, an optical medium, a magnetic medium).

[0115] In some embodiments, computing device 210 (e.g., via processor 212) may implement video chat system 222 to operate, support, and / or manage video chat application 220 and / or video chat application 120, which may be executed by any of computing devices 110, 230, 240, 250, respectively. In some embodiments, according to example embodiments of this disclosure, computing device 210 (e.g., via processor 212) may implement video chat system 222 to allow any of computing devices 110, 230, 240, 250 (e.g., during operation of video chat application 120) to facilitate modifications to visual data (e.g., images, videos) in a chat view associated with a video chat session, at least in part based on (e.g., in response to) user identification and / or user movement.

[0116] Network 260 according to the example embodiments described herein can be any type of communication network, such as, for example, a local area network (e.g., an intranet), a wide area network (e.g., the Internet), and / or some combination thereof. In some embodiments, communication between any of the computing devices 110, 210, 230, 240, and / or 250 can be carried via a network interface to network 260 using any type of wired and / or wireless connection, using various communication protocols, encoding or formats, and / or protection schemes. For example, in at least one embodiment, communication between such devices may be carried via a network interface to network 260 using: communication protocols such as, for example, Transmission Control Protocol / Internet Protocol (TCP / IP), Hypertext Transfer Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), File Transfer Protocol (FTP), User Datagram Protocol (UDP), Real-Time Transport Protocol (RTP), and / or Real-Time Transport Control Protocol (RTCP); encoding or format such as, for example, Hypertext Markup Language (HTML) and / or Extensible Markup Language (XML); and / or protection schemes such as, for example, Virtual Private Network (VPN), Secure HTTP, Secure Shell (SSH), Secure Sockets Layer (SSL), and / or Secure Real-Time Transport Protocol (SRTP).

[0117] Figure 3A , Figure 3B , Figure 3C and Figure 3D Example non-limiting chat view illustrations 300a, 300b, 300c, and 300d are shown, respectively, according to one or more exemplary embodiments of the present disclosure. Figure 3A , Figure 3B , Figure 3C and Figure 3D In the example embodiments depicted herein, chat view illustrations 300a, 300b, 300c, and 300d provide illustrative examples of how computing devices such as computing device 110 described herein can facilitate modifications to visual data (e.g., images, videos) in a chat view associated with a video chat session, based at least in part on (e.g., in response to) user identification and / or user movement.

[0118] exist Figure 3A , Figure 3B , Figure 3C and Figure 3D In the example embodiments depicted, each chat view illustration 300a, 300b, 300c, and 300d includes a chat view 302, which can be rendered by a computing device during a video chat session, for example, in the video chat user interface of a video chat application. For example, in... Figure 3A , Figure 3B , Figure 3C and Figure 3DEach chat view 302 shown in the example embodiment depicted can be rendered by computing device 110 in the video chat user interface of video chat application 120 during a video chat session.

[0119] exist Figure 3A In the example embodiment depicted herein, chat view illustration 300a provides an example of how computing device 110 can identify authorized participant 304 in chat view 302 (e.g., using facial embeddings and / or feature vectors via facial recognition module 122 as described herein) and render visual data indicating authorized participant 304 at a relatively high resolution in the foreground portion of chat view 302. In this example embodiment, chat view illustration 300a also provides an example of how computing device 110 can define chat area 306 (e.g., reference position) corresponding to authorized participant 304 (e.g., using skeletal keypoints and / or reference keypoint data via facial recognition module 122 as described herein).

[0120] exist Figure 3B In the example embodiment depicted herein, chat view illustration 300b provides an example of how computing device 110 can determine that authorized participant 304 has moved outside chat area 306 (e.g., using reference and runtime keypoint data and / or feature vectors as described herein via feature tracking algorithm 124). In this example embodiment, chat view illustration 300b also provides an example of how computing device 110 can partially, based on (e.g., in response to) determining that authorized participant 304 has moved outside chat area 306, hide (e.g., blur, conceal, mask) visual data indicating authorized participant 304 in the background portion of chat view 302 at a relatively low resolution.

[0121] exist Figure 3C In the example embodiment depicted herein, chat view illustration 300c provides an example of how computing device 110 can: identify authorized participant 304 in chat view 302; render visual data indicating authorized participant 304 at a relatively high resolution in the foreground portion of chat view 302; and define chat area 306 corresponding to authorized participant 304. In this example embodiment, chat view illustration 300c also provides an example of how computing device 110 can also detect unauthorized participant 308 in chat view 302 (e.g., in the background portion of chat view 302) (e.g., using facial embedding and / or feature vectors via facial recognition module 122 as described herein) and hide (e.g., blur, conceal, mask) visual data indicating unauthorized participant 308 at a relatively low resolution in the background portion of chat view 302.

[0122] exist Figure 3DIn the example embodiment depicted herein, chat view illustration 300d provides an example of how computing device 110 can: identify an authorized participant 304 in chat view 302; render visual data indicating the authorized participant 304 at a relatively high resolution in the foreground portion of chat view 302; define a chat area 306 corresponding to the authorized participant 304; detect an unauthorized participant 308 in chat view 302; and hide visual data indicating the unauthorized participant 308 at a relatively low resolution in the background portion of chat view 302. In this example embodiment, chat view illustration 300d also provides an example of how computing device 110 can identify a second authorized participant 310 in chat view 302 (e.g., in the background portion of chat view 302) (e.g., using facial embedding and / or feature vectors via facial recognition module 122 as described herein) and render visual data indicating the second authorized participant 310 at a relatively high resolution in the background portion of chat view 302. In this example embodiment, the chat view illustration 300d also provides an example of how the computing device 110 can define a chat area 312 (e.g., a reference location) corresponding to the second authorized participant 310 (e.g., using skeletal keypoints and / or reference keypoint data via the facial recognition module 122 as described herein).

[0123] Figure 4 A block diagram of an example non-limiting process and data flow 400 according to one or more example embodiments of the present disclosure is shown. In example embodiments of the present disclosure, computing device 110 may implement (e.g., execute, run) the process and data flow 400 during a video chat session to facilitate modifications to visual data (e.g., images, videos) in a chat view associated with the video chat session, at least in part based on (e.g., in response to) user identification and / or user movement.

[0124] exist Figure 4 In the example embodiment depicted, computing device 110 may use face recognition module 122 to perform the aforementioned face calibration process to authenticate / identify authorized participant 304 in chat view 302 as an expected participant and / or invitee in a video chat session. In this embodiment, when performing such a face calibration process, computing device 110 may (e.g., via face recognition module 122) generate one or more facial embeddings and / or feature vectors that can represent, correspond to, and / or indicate authorized participant 304. In this embodiment, computing device 110 may store such facial embeddings and / or feature vectors of authorized participant 304 as part of authorized participant face set 402, which may constitute, for example, a database and / or text file that may be stored in, for example, memory 114.

[0125] In some embodiments, computing device 110 may use face recognition module 122 to perform a face calibration process to authenticate and / or identify one or more other authorized participants in chat view 302 as expected participants and / or invitees in a video chat session. In these embodiments, computing device 110 may store such facial embeddings and / or feature vectors of such other authorized participants as part of authorized participant face set 402.

[0126] exist Figure 4 In the example embodiment depicted, computing device 110 may use face recognition module 122 and / or feature tracking algorithm 124 to perform the chat area calibration process described above to define chat area 306 corresponding to authorized participant 304. For example, in this embodiment, computing device 110 may use face recognition module 122 and / or feature tracking algorithm 124 as described above to learn the skeletal key points of authorized participant 304 to obtain and / or generate reference key point data and / or reference feature vectors that can describe authorized participant 304 and / or indicate the location of authorized participant 304 in chat area 306 (e.g., at a reference location). Figure 4 As illustrated in the example embodiment, computing device 110 can store such reference keypoint data and / or reference feature vectors of authorized participant 304 as part of chat area gesture set 404, which may constitute, for example, a database and / or text file that may be stored in, for example, memory 114.

[0127] exist Figure 4 In the example embodiment depicted, during a video chat session, computing device 110 may perform operations that may include, for example, face detection 406, face embedding 408, pose checking 410, and / or distance difference determination 412. In this embodiment, at least in part based on (e.g., in response to) performing such operations, computing device 110 may also perform operations that may include, for example, hiding the visual data of an unauthorized participant 414 and / or hiding the visual data of an authorized participant 416.

[0128] exist Figure 4In the example embodiments depicted, during a video chat session, computing device 110 may perform face detection 406 by implementing (e.g., executing, running) face recognition module 122 to detect entities in chat view 302. In this embodiment, at least in part based on (e.g., in response to) the detection of such entities in chat view 302, computing device 110 may access authorized participant face set 402 to perform face embedding 408. For example, in this embodiment, computing device 110 may use the face embedding and / or feature vector of authorized participant 304, which may be included in authorized participant face set 402, to identify authorized participant 304 as a prospective participant and / or invitee in the video chat session, as described below and in other example embodiments of this disclosure.

[0129] exist Figure 4 In the example embodiment depicted, if computing device 110 (e.g., via face recognition module 122) determines that the facial embedding and / or feature vector corresponding to such an entity appearing in chat view 302 matches the facial embedding and / or feature vector corresponding to authorized participant 304, then computing device 110 can render (e.g., visually display) visual data (e.g., images, videos) indicating authorized participant 304 in chat view 302 (e.g., in the foreground portion of chat view 302) at relatively high resolution. Figure 4 As shown. In this embodiment, if the computing device 110 (e.g., via the face recognition module 122) determines that the facial embedding and / or feature vector corresponding to an entity appearing in the chat view 302 does not match the facial embedding and / or feature vector corresponding to the authorized participant 304, the computing device 110 can thereby determine that the entity is an unauthorized participant 308, and can also perform the operation of hiding the visual data 414 of the unauthorized participant. For example, in this embodiment, the computing device 110 can use relatively low resolution to hide (e.g., blur, conceal, mask) the visual data (e.g., images, videos) indicating the unauthorized participant 308 in the chat view 302 (e.g., in the background portion of the chat view 302), such as... Figure 4 As shown.

[0130] exist Figure 4In the example embodiments depicted, during a video chat session, computing device 110 may perform pose checking 410 by implementing (e.g., executing, running) feature tracking algorithm 124 to determine that authorized participant 304 is positioned within chat area 306 and / or track the movement of authorized participant 304 in chat view 302 and / or chat area 306. In this embodiment, while performing pose checking 410 and / or tracking the movement of authorized participant 304, computing device 110 may also perform distance difference determination 412 to determine (e.g., via feature tracking algorithm 124) whether authorized participant 304 has moved outside chat area 306, as described below and in other example embodiments of this disclosure.

[0131] exist Figure 4 In the example embodiment depicted, when performing distance difference determination 412, computing device 110 may (e.g., via face recognition module 122 and / or feature tracking algorithm 124) generate runtime keypoint data and / or runtime feature vectors that describe the authorized participant 304 and / or indicate the location of the authorized participant 304 in the chat view 302 during the video chat session. In this embodiment, when performing distance difference determination 412, computing device 110 may (e.g., via face recognition module 122 and / or feature tracking algorithm 124) compare the reference and runtime keypoint data and / or feature vectors of the authorized participant 304 to determine whether the distance difference corresponding to such reference and runtime keypoint data and / or feature vectors of the authorized participant 304 (e.g., between skeletal keypoints) exceeds a defined threshold (e.g., a predefined distance and / or percentage value).

[0132] exist Figure 4 In the example embodiment depicted, if the computing device 110 (e.g., via the face recognition module 122 and / or feature tracking algorithm 124) determines that the distance difference corresponding to the reference and runtime keypoint data and / or feature vectors of the authorized participant 304 (e.g., between skeletal keypoints) exceeds a defined threshold (e.g., a predefined distance and / or percentage value), the computing device 110 may perform the operation of hiding the visual data 416 of the authorized participant. For example, in this embodiment, although not in Figure 4 As shown, however, after determining that the authorized participant 304 has moved outside the chat area 306, the computing device 110 can use a relatively low resolution to hide (e.g., blur, conceal, mask) the visual data (e.g., images, videos) indicating the authorized participant 304 in the chat view 302 (e.g., in the background portion of the chat view 302). Figure 3BThe chat view illustration 300b is shown in the figure. In some embodiments, after determining (e.g., via facial recognition module 122 and / or feature tracking algorithm 124) that the authorized participant 304 has returned to chat area 306, computing device 110 may again render (e.g., visually display) visual data (e.g., images, videos) indicating the authorized participant 304 in chat view 302 (e.g., in the foreground portion of chat view 302) at a relatively high resolution. Figure 4 As shown.

[0133] Figure 5 A flowchart illustrating an example non-limiting computer implementation of method 500 according to one or more exemplary embodiments of the present disclosure is shown. The above references may be used, for example... Figure 1 and Figure 2 The example embodiments described herein illustrate a computer-implemented method 500 implemented using computing devices 110, 210, 230, 240, or 250.

[0134] For the purposes of explanation and discussion, Figure 5 The example embodiments shown depict operations performed in a specific order. Those skilled in the art will understand using the disclosure provided herein that various operations or steps of the computer-implemented method 500 or any of the other methods disclosed herein may be adapted, modified, rearranged, performed concurrently, including operations not illustrated, and / or modified in various ways without departing from the scope of this disclosure.

[0135] At 502, the computer-implemented method 500 may include: (e.g., using the facial recognition module 122 and / or the authorized participant face set 402 by the computing device 110) identifying a first authorized participant (e.g., authorized participant 304) and a second authorized participant (e.g., second authorized participant 310) in a chat view (e.g., chat view 302) associated with a video chat session (e.g., a video chat session using video chat application 120, video chat application 220 and / or video chat system 222).

[0136] At 504, the computer-implemented method 500 may include (e.g., by computing device 110) rendering, in a chat view, first visual data indicating the first authorized participant and second visual data indicating the second authorized participant, respectively, based at least in part on (e.g., in response to) identifying the first authorized participant and the second authorized participant. For example, computing device 110 may render visual data corresponding to authorized participant 304 and second authorized participant 310, respectively, as described above and in Figure 3D The example embodiments depicted are shown in the illustration.

[0137] At 506, the computer-implemented method 500 may include: (e.g., by the computing device 110 using the facial recognition module 122 and / or the feature tracking algorithm 124) defining a chat area (e.g., chat area 306) in the chat view, which indicates the reference position of the first authorized participant (e.g., the position and / or orientation typically occupied by the authorized participant 304 during a video chat session).

[0138] At 508, the computer-implemented method 500 may include: (e.g., using the facial recognition module 122, feature tracking algorithm 124, and / or chat area gesture set 404 by the computing device 110) determining that the first authorized participant has moved outside the chat area.

[0139] At 510, the computer-implemented method 500 may include (e.g., by computing device 110) at least partially based on (e.g., in response to) determining that a first authorized participant has moved outside the chat area, hiding first visual data indicating the first authorized participant in the chat view. For example, computing device 110 may hide (e.g., blur, mask, conceal) visual data corresponding to authorized participant 304, as described above and Figure 3B The example embodiments depicted are shown in the illustration.

[0140] Figure 6 A flowchart illustrating an example non-limiting computer implementation of method 600 according to one or more exemplary embodiments of the present disclosure is shown. The above references may be used, for example... Figure 1 and Figure 2 The example embodiments described herein illustrate a computing device 110, 210, 230, 240, or 250 for implementing a computer-implemented method 600.

[0141] For the purposes of explanation and discussion, Figure 6 The example embodiments shown depict operations performed in a specific order. Those skilled in the art will understand using the disclosure provided herein that various operations or steps of the computer-implemented method 600 or any of the other methods disclosed herein can be adapted, modified, rearranged, performed concurrently, including operations not illustrated, and / or modified in various ways without departing from the scope of this disclosure.

[0142] At 602, the computer-implemented method 600 may include: (e.g., by the computing device 110 using the facial recognition module 122 and / or the authorized participant face set 402) identifying authorized participants (e.g., authorized participant 304) in a chat view (e.g., chat view 302) associated with a video chat session (e.g., a video chat session using video chat application 120, video chat application 220 and / or video chat system 222).

[0143] At 604, the computer-implemented method 600 may include (e.g., by computing device 110) rendering first visual data indicative of the authorized participant in a chat view, at least in part based on (e.g., in response to) identifying the authorized participant. For example, computing device 110 may render visual data corresponding to the authorized participant 304, as described above and Figure 3C The example embodiments depicted are shown in the illustration.

[0144] At 606, the computer-implemented method 600 may include: (e.g., using the facial recognition module 122 and / or the authorized participant face set 402 by the computing device 110) detecting unauthorized participants (e.g., unauthorized participant 308) in the chat view of the video chat session.

[0145] At 608, the computer-implemented method 600 may include (e.g., by computing device 110) hiding second visual data indicating an unauthorized participant in a chat view, at least in part based on (e.g., in response to) detecting an unauthorized participant. For example, computing device 110 may hide (e.g., blur, mask, conceal) visual data corresponding to the unauthorized participant 308, as described above and Figure 3C The example embodiments depicted are shown in the illustration.

[0146] Figure 7 A flowchart illustrating an example non-limiting computer implementation of method 700 according to one or more exemplary embodiments of the present disclosure is shown. The above references may be used, for example... Figure 1 and Figure 2 The example embodiments described herein illustrate a computing device 110, 210, 230, 240, or 250 for implementing a computer-implemented method 700.

[0147] For the purposes of explanation and discussion, Figure 7 The example embodiments shown depict operations performed in a specific order. Those skilled in the art will understand using the disclosure provided herein that various operations or steps of the computer-implemented method 700 or any of the other methods disclosed herein can be adapted, modified, rearranged, performed concurrently, including operations not illustrated, and / or modified in various ways without departing from the scope of this disclosure.

[0148] At 702, the computer-implemented method 700 may include: (e.g., by the computing device 110 using the facial recognition module 122 and / or the feature tracking algorithm 124) defining a chat area (e.g., chat view 302) in a chat view associated with a video chat session (e.g., a video chat session using video chat application 120, video chat application 220 and / or video chat system 222), the chat area indicating the reference position (e.g., the position and / or orientation typically occupied by the authorized participant 304 during the video chat session) of a participant (e.g., authorized participant 304) in the video chat session.

[0149] At 704, the computer-implemented method 700 may include (e.g., using the facial recognition module 122, feature tracking algorithm 124, and / or chat area gesture set 404 by the computing device 110) determining that a participant has moved out of the chat area.

[0150] At 706, the computer-implemented method 700 may include (e.g., by computing device 110) at least in part based on (e.g., in response to) determining that a participant has moved outside the chat area, hiding visual data indicating the participant in the chat view. For example, computing device 110 may hide (e.g., blur, mask, conceal) visual data corresponding to authorized participant 304, as described above and Figure 3B The example embodiments depicted are shown in the illustration.

[0151] Figure 8 A flowchart illustrating an example non-limiting computer implementation of method 800 according to one or more exemplary embodiments of the present disclosure is shown. The above references may be used, for example... Figure 1 and Figure 2 The example embodiments described herein illustrate a computer-implemented method 800 implemented by computing devices 110, 210, 230, 240, or 250.

[0152] For the purposes of explanation and discussion, Figure 8 The example embodiments shown depict operations performed in a specific order. Those skilled in the art will understand using the disclosure provided herein that various operations or steps of the computer-implemented method 800 or any of the other methods disclosed herein may be adapted, modified, rearranged, performed concurrently, including operations not illustrated, and / or modified in various ways without departing from the scope of this disclosure.

[0153] At 802, the computer-implemented method 800 may include (e.g., by the computing device 110 using the facial recognition module 122 and / or the feature tracking algorithm 124) monitoring a chat view (e.g., chat view 302) associated with a video chat session (e.g., a video chat session using video chat application 120, video chat application 220 and / or video chat system 222).

[0154] At 804, the computer-implemented method 800 may include: (e.g., using the facial recognition module 122 and / or the authorized participant's face set 402 by the computing device 110) detecting entities (e.g., humans) in the chat view.

[0155] At 806, the computer-implemented method 800 may include: (e.g., using the facial recognition module 122 and / or the authorized participant face set 402 by the computing device 110) determining whether an entity is an authorized participant (e.g., authorized participant 304).

[0156] If it is determined at 806 that the entity is not an authorized participant, then at 808, the computer-implemented method 800 may include (e.g., by computing device 110) hiding visual data indicating the entity in the chat view. For example, computing device 110 may hide (e.g., blur, mask, conceal) visual data corresponding to the unauthorized participant 308, as described above and Figure 3C The example embodiments depicted are shown in the illustration. Figure 8 In the example embodiments depicted, the computer-implemented method 800 may further include: returning from operation 808 to operation 802 and / or repeating operations 802, 804 and 806 until it is determined at operation 806 that the entity is an authorized participant.

[0157] If it is determined at 806 that the entity is an authorized participant, then at 810, the computer-implemented method 800 may include (e.g., by computing device 110) rendering visual data indicating the entity in a chat view. For example, computing device 110 may render (e.g., visually display) visual data corresponding to authorized participant 304, as described above and in Figure 3C The example embodiments depicted are shown in the illustration.

[0158] At 812, the computer-implemented method 800 may include: (e.g., by the computing device 110 using the facial recognition module 122 and / or the feature tracking algorithm 124) defining a chat area (e.g., chat area 306) in the chat view, which indicates the reference location of an entity (e.g., the location and / or orientation typically occupied by the authorized participant 304 during a video chat session).

[0159] At 814, the computer-implemented method 800 may include (e.g., using a facial recognition module 122 and / or a feature tracking algorithm 124 by a computing device 110) tracking the movement of an entity in a chat view.

[0160] At 816, the computer-implemented method 800 may include (e.g., using the facial recognition module 122, feature tracking algorithm 124, and / or chat area gesture set 404 by the computing device 110) determining whether an entity has moved outside the chat area.

[0161] If it is determined at 816 that the entity has not yet moved outside the chat area, the computer-implemented method 800 may further include: returning from operation 816 to operation 814 and / or repeating operations 814 and 816 until it is determined at operation 816 that the entity has moved outside the chat area.

[0162] If it is determined at 816 that the entity has moved outside the chat area, then at 818, the computer-implemented method 800 may include (e.g., by computing device 110) hiding visual data indicating the entity in the chat view. For example, computing device 110 may hide (e.g., blur, mask, conceal) visual data corresponding to authorized participant 304, as described above and Figure 3B The example embodiments depicted are shown in the illustration.

[0163] At 820, the computer-implemented method 800 may again include: (e.g., using the facial recognition module 122 and / or feature tracking algorithm 124 by the computing device 110) tracking the movement of entities in the chat view.

[0164] At 822, the computer-implemented method 800 may include (e.g., using the facial recognition module 122, feature tracking algorithm 124, and / or chat area gesture set 404 by the computing device 110) determining whether an entity has returned to the chat area.

[0165] If it is determined at 822 that the entity has returned to the chat area, then at 824, the computer-implemented method 800 may include (e.g., by computing device 110) rendering visual data indicating the entity in the chat view. For example, computing device 110 may render (e.g., visually display) visual data corresponding to authorized participant 304, as described above and in Figure 3A The example embodiments depicted are shown in the illustration. Figure 8 In the example embodiments depicted, the computer-implemented method 800 may further include: returning from operation 824 to operation 814 and / or repeating operations 814, 816, 818, 820 and 822.

[0166] If it is determined at 822 that the entity has not yet returned to the chat area, then at 826, the computer-implemented method 800 may include: (e.g., by the computing device 110 using video chat application 120, video chat application 220, and / or video chat system 222) determining whether the video chat session has ended.

[0167] If it is determined at 826 that the video session has not ended, the computer-implemented method 800 may further include: returning from operation 826 to operation 820 and / or repeating operations 820, 822 and 826 until it is determined at operation 826 that the video chat session has ended.

[0168] If it is determined at 826 that the video session has ended, then at 828, the computer-implemented method 800 can terminate (e.g., terminated and / or stopped by the computing device 110).

[0169] This article discusses technologies related to servers, databases, software applications, and other computer-based systems, as well as actions performed by such systems and information sent to and from them. The inherent flexibility of computer-based systems allows for a wide range of possible configurations, combinations, and partitions of tasks and functionality among and between components. For example, the processes discussed herein can be implemented using a single device or component, or multiple devices or components working in combination. Databases and applications can be implemented on a single system or distributed across multiple systems. Distributed components can operate sequentially or in parallel.

[0170] While the subject matter has been described in detail with respect to various specific example embodiments, each example is provided by way of explanation and not limitation. Changes, variations, and equivalents to such embodiments will be readily apparent to those skilled in the art upon understanding the foregoing. Therefore, this disclosure does not exclude such modifications, variations, and / or additions to the subject matter that will be readily understood by those of ordinary skill in the art. For example, features shown or described as part of one embodiment may be used with another embodiment to produce yet another embodiment. Therefore, this disclosure is intended to cover such changes, variations, and equivalents.

Claims

1. A computing device, characterized in that, include: One or more processors; as well as One or more non-transitory computer-readable media storing instructions that, when executed by the one or more processors, cause the computing device to perform operations, including: Identify the first and second authorized participants in the video chat session within the chat view associated with the video chat session; Based at least in part on identifying the first authorized participant and the second authorized participant, first visual data indicating the first authorized participant and second visual data indicating the second authorized participant are rendered in the chat view, respectively. A chat area is defined in the chat view to indicate the reference position of the first authorized participant, wherein defining the chat area includes using a facial recognition module to perform a chat area calibration process to define the chat area in the chat view based at least in part on reference key point data corresponding to the first authorized participant, the reference key point data describing the first authorized participant and indicating that the first authorized participant is located at the reference position; Determine that the first authorized participant has moved outside the chat area; and Based at least in part on determining that the first authorized participant has moved outside the chat area, the first visual data indicating the first authorized participant is hidden in the chat view.

2. The computing device according to claim 1, characterized in that, The operation also includes: At least in part based on the determination that the first authorized participant has moved outside the chat area, the rendering of the second visual data indicating the second authorized participant is maintained in the chat view.

3. The computing device according to claim 1, characterized in that, The operation also includes: A facial recognition module is used to perform a facial calibration process to authenticate at least one of the first authorized participant or the second authorized participant as an authorized participant in the video chat session.

4. The computing device according to claim 1, characterized in that, The operation also includes: A facial recognition module is implemented to detect at least one of the first authorized participant, the second authorized participant, or an unauthorized participant in the video chat session in the chat view.

5. The computing device according to claim 1, characterized in that, The operation also includes: Detecting unauthorized participants in the video chat session within the chat view; and Based at least in part on the detection of the unauthorized participant, third visual data indicating the unauthorized participant is hidden in the chat view.

6. The computing device according to claim 5, characterized in that, The operation also includes: A notification is provided indicating at least one of the following: the unauthorized participant is detected, or the third visual data is hidden in the chat view.

7. The computing device according to claim 1, characterized in that, The operation also includes: A feature tracking algorithm is used to perform a pose estimation process to determine if the first authorized participant has moved outside the chat area.

8. The computing device according to claim 1, characterized in that, The operation also includes: Performing a gesture estimation process to determine if the first authorized participant has moved outside the chat area, the gesture estimation process includes: The runtime keypoint data corresponding to the first authorized participant is compared with the reference keypoint data corresponding to the first authorized participant, wherein the reference keypoint data describes the first authorized participant and indicates that the first authorized participant is located at the reference location, and the runtime keypoint data describes the first authorized participant and indicates that the first authorized participant is located at one or more second locations different from the reference location.

9. The computing device according to claim 8, characterized in that, The comparison of the runtime key point data corresponding to the first authorized participant with the reference key point data corresponding to the first authorized participant includes: The runtime distance between keypoints in the runtime keypoint data is compared with the reference distance between keypoints in the reference keypoint data to determine whether the difference between one runtime distance in the runtime distance and one reference distance in the reference distance exceeds a defined threshold.

10. The computing device according to claim 1, characterized in that, Rendering at least one of the first visual data indicating the first authorized participant or the second visual data indicating the second authorized participant in the chat view includes: In the foreground portion of the chat view, at least one of the first visual data indicating the first authorized participant or the second visual data indicating the second authorized participant is rendered.

11. The computing device according to claim 1, characterized in that, The first visual data indicating the first authorized participant being hidden in the chat view, based at least in part on the determination that the first authorized participant has moved outside the chat area, includes: Based at least in part on the determination that the first authorized participant has moved outside the chat area, the first visual data indicating the first authorized participant is hidden in the background portion of the chat view.

12. A computer-implemented method for modifying visual data in a chat view associated with a video chat session, characterized in that, The computer-implemented method includes: Authorized participants in the video chat session are identified in the chat view by a computing device including one or more processors; The computing device renders first visual data indicating the authorized participant in the chat view, based at least in part on the identification of the authorized participant; The computing device uses a facial recognition module to perform a chat area calibration process to define a chat area in the chat view based at least in part on reference keypoint data corresponding to the authorized participant, the reference keypoint data describing the authorized participant and indicating that the authorized participant is positioned at a reference location; The computing device detects unauthorized participants in the video chat session in the chat view; and The computing device, at least in part based on the detection of the unauthorized participant, hides second visual data indicating the unauthorized participant in the chat view.

13. The computer-implemented method according to claim 12, characterized in that, The first visual data indicating the authorized participant rendered by the computing device in the chat view includes the first visual data indicating the authorized participant rendered by the computing device in the foreground portion of the chat view, and the second visual data indicating the unauthorized participant hidden by the computing device in the chat view includes the second visual data indicating the unauthorized participant hidden by the computing device in the background portion of the chat view.

14. The computer-implemented method according to claim 12, characterized in that, Also includes: The computing device identifies a second authorized participant in the video chat session in the background portion of the chat view; as well as The computing device renders third visual data indicating the second authorized participant in the background portion of the chat view, based at least in part on the identification of the second authorized participant.

15. The computer-implemented method according to claim 14, characterized in that, The first visual data indicating the authorized participant or the third visual data indicating the second authorized participant has a first defined resolution, and the second visual data indicating the unauthorized participant has a second defined resolution that is less than the first defined resolution.

16. One or more computer-readable media, characterized in that, The one or more computer-readable media store instructions, which, when executed by one or more processors of a computing device, cause the computing device to perform operations, the operations including: A chat area is defined in a chat view associated with a video chat session, the chat area indicating a reference position of a participant in the video chat session, wherein defining the chat area includes using a facial recognition module to perform a chat area calibration process to define the chat area in the chat view based at least in part on reference keypoint data corresponding to the participant, the reference keypoint data describing the participant and indicating that the participant is located at the reference position; Determine that the participant has moved outside the chat area; and Visual data indicating the participant is hidden in the chat view, at least in part, based on the determination that the participant has moved outside the chat area.

17. One or more computer-readable media according to claim 16, characterized in that, The operation also includes: The participant is confirmed to have returned to the chat area.

18. One or more computer-readable media according to claim 17, characterized in that, The operation also includes: At least in part, based on determining that the participant has returned to the chat area, the visual data indicating the participant is rendered in the chat view.

19. One or more computer-readable media according to claim 16, characterized in that, The operation also includes: A feature tracking algorithm is used to perform a pose estimation process to determine at least one of the following: the participant moves out of the chat area; or the participant returns to the chat area.

20. One or more computer-readable media according to claim 16, characterized in that, The visual data indicating that a participant has moved out of the chat area, which is hidden in the chat view at least in part based on the determination that the participant has moved out of the chat area, includes: Based at least in part on the determination that the participant has moved outside the chat area, the visual data indicating the participant is hidden in the background portion of the chat view.